C# 调用c库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace test
{
public class CoordTrans
{
//
[DllImport("coord_trans.dll", EntryPoint = "convert", CallingConvention = CallingConvention.Cdecl)]
public static extern int convert(int from, int to, ref coord input, ref coord output);
}
public struct coord
{
/// <summary>维度</summary>
public double lat;
/// <summary>经度</summary>
public double lng;

/// <summary>坐标</summary>
/// <param name="lat">维度</param>
/// <param name="lng">经度</param>
public coord(double lat, double lng)
{
this.lat = lat;
this.lng = lng;
}
}

class Program
{
//取值为如下:
//1:GPS设备获取的角度坐标,wgs84坐标;
//3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标,国测局坐标(GCJ02);
//5:百度地图采用的经纬度坐标(bd09ll);

static void Main(string[] args)
{
coord input = new coord(31.221816, 121.350051);
coord output = new coord(0.0, 0.0);
int result = CoordTrans.convert(1, 5, ref input, ref output);

if (result == 0)
Console.WriteLine("convert ok! lat[{0}], lng[{1}]", output.lat, output.lng);
else
Console.WriteLine("convert fail!");
}
}
}

时间: 2024-10-14 07:02:37

C# 调用c库的相关文章

用ffi调用.dylib库

有一个特性需要调用第三方库libsync,在node.js里可以用ffi来实现 首先稍微包装了一下,ffi也是支持异步调用的,但是API比较麻烦,包装以后调用起来会比较容易 var ffi = require("ffi"); var lib = ffi.Library('./libsync', { 'file_chunk': ['int', ['string', 'string', 'int']], 'file_delta': ['int', ['string', 'string',

调用MyFocus库,简单实现二十几种轮播效果

一.首先点击这里下载myFocus库文件,标准文件库就行了,很小仅仅1.4M. myFocus库有以下的好处: a . 文件小巧却高效强大,能够实现二十几种轮播的效果. b . 极其简单的使用,只需要调用就可以使用,下面会介绍方法. c . 灵活的设置,很多参数可以提供设置,比如不想要文字提示,设置高度为0....更多参数适用请见网站教程页面. 二.下载下来之后,解压,看到一个文件夹,如下图所示: 对此文件夹进行一下说明:a . 打开js文件夹,然后有个js文件,就是我们最开始要调用的myfoc

在QQ群里有人提问有没有C语言的XML解析,偶然想到了这个问题:C++调用C库,简单试验:

我的电脑Mac,系统MaveRicks. 写一个C代码: #include<stdio.h> void hello(){ printf("Hello, this is from C Language ~\n"); } 编译一个库文件: franklinMacmini:~ git$ gcc --shared -o libhello.so hello.c franklinMacmini:~ git$ ll -tr drwx------+ 3 git staff 102 Sep

调用第三方库出现的问题

运行一个需要调用第三方库的小程序本应该是很简单的事情,但是要想顺利地把程序跑起来首先要迈的第一道坎就是正确的配置路径和编译环境.鉴于前两次在开始调用时,状况百出而我却无从下手,所以非常有必要回顾一下最基本的问题. 在windows 环境下,从编写到运行需要两个步骤:① 首先写好源文件(.c),经过cl.exe编译器编译,从而生成了.obj 目标文件[编译] ② 生成的目标文件(.obj)再结和库文件(.lib)经过link.exe 链接器从而生成可执行文件.[链接][运行]*.h   *.lib

Python调用C库

Python调用C库 Python可以利用ctypes库很方便地调用C的库函数. C库例程: # file: a.c int sum(int a, int b){   int t = 0;   int i = 0;   for(; i < b;i++) t += a;   return t; } shell> gcc -fPIC -g -c -Wall a.c && gcc -shared -Wl,-soname,liba.so -o liba.so a.o   Python程

android调用第三方库——第一篇 (转载)

转自:http://blog.csdn.net/jiuyueguang/article/details/9447245 版权声明:本文为博主原创文章,未经博主允许不得转载. 0:前言: 这两天一直在研究用android的jni调用第三方库,上网搜方法,但是都是泛泛而谈,没有demo,经过我几番折磨,写了n多的 helloword工程,总是不成功,工程名字也就由helloowrd转到shithelloword再转到fuckhelloword再转到 bitchhelloword再转到ganhello

调用动态库时声明的参数个数不一致导致的问题

问题: 原因:调用动态库时声明的参数个数不一致.  本文用菊子曰发布

Qt中调用PolarSSL库(一)

最近一直在学习SSL相关的知识,也是先了解理论相关的知识,主要是SSL相关的基本概念和连接建立过程,主要是基于PolarSSL开源库进行学习.学习完了之后就希望能给有所运用,就想用Qt写一个简单的程序,增加对SSL相关概念的把握和对PolarSSL库的运用.当然,最终希望是可以使用Qt做一个比较完善的工具,帮助大家更好的理解和学习SSL相关知识.这都是后话,在第一篇里面,我们就简单用例子展示如何在Qt里面调用PolarSSL库. 这篇博客主要是讲解Qt里面调用PolarSSL库,至于SSL相关概

iOS开发:在Swift中调用oc库

先列举这个工程中用到的oc源码库: MBProgressHUD:半透明提示器,Loading动画等 SDWebImage:图片下载和缓存的库 MJRefresh: 下拉刷新,上拉加载 Alamofire.xcodeproj和SwiftyJSON.xcodeproj是Swift的库,这篇博客主要记录调用上面4个oc的库. 第一步:将oc的源码库拖入到我们的projec,如下图. 第二步:新建一个头文件,用于引用oc的库.如下图,选择 object library 中的 头文件,拖拽到project

Android底层笔记:APP通过JNI调用动态库.so

开发环境: 平板电脑:FSPAD-733,原理上来说任何支持安卓的开发板都可以: eclipse:使用的是iTOP-4412开发板提供的eclipse安卓开发包: Ubuntu:使用的是FSPAD-733虚拟机开发环境,原理上来说任何开发包提供的虚拟机环境都是可以的. 加载库名,然后系统自动到库目录下找.so动态库 目录/库文件名 loadLibrary ? ? ? du -mh tags androidL/art/ vi -t Runtim_nativeLoad ? ? ? javah -jn