
C#
文章平均质量分 67
spkettas
天道酬勤
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配...
VS10下调用dll,代码如下: // C++接口声明void test(char *str);// 接口声明[DllImport("datalib.dll", EntryPoint = "test")]public static extern void test(string str);// 调用 string str="Hello";te...原创 2013-04-03 13:13:52 · 1185 阅读 · 0 评论 -
C#调用C/C++动态库 封送结构体,结构体数组
因为公司一直都是做C++开发的,因客户需要要提供C#版本接口,研究了一下C#,发现其强大简洁, 在跨语言调用方面封装的很彻底,提供了强大的API与之交互.这点比JNA方便多了. Java与C#都只能调用C格式导出动态库,因为C数据类型比较单一,容易映射. 两者都是在本地端提供一套与之映射的C#/java描述接口,通过底层处理这种映射关系达到调用的目的. 一. 结构体的传递...原创 2012-09-10 18:13:39 · 755 阅读 · 0 评论 -
C# 调用C/C++回调函数
C/C++内回调函数一般通过传递函数指针来实现,函数指针在C#中对应的就是委托. // 传入函数指针typedef void (*FUNC)(int,char*);JNAAPI bool processCallback(int a,FUNC func); public delegate void CallbackDelegate(int a,string param...原创 2012-09-11 11:23:13 · 2115 阅读 · 0 评论 -
内部限制:结构太复杂或太大
C#在调用c/c++动态库时,有时传入一个超大结构体数组时,运行时会报错: "内部限制:结构太复杂或太大" // 结构体定义[StructLayout(LayoutKind.Sequential,Pack=1)]public struct hdata_element_t{ public byte Valid; public float Value;}...原创 2012-09-25 16:30:37 · 1614 阅读 · 1 评论 -
1970年至今秒数转化为时间
当前系统时间,一般取自1970年以来秒数值(int),各种编程语言提供API处理方式不同,特汇总。 1.C/C++time_t seconds;time(&seconds); 2.QTQDateTime dt = QDateTime::currentDateTime();dt.toTime_t(); 3.C#C#没有直接提供获取1970年秒值...原创 2016-01-06 11:00:37 · 10097 阅读 · 0 评论 -
Log4Net 使用
Log4j是Java下强大的日志记录类库,各语言都有相应实现版本。C的log4c,C++的log4cxx,QT的log4QT,C#下的log4Net。不过还是Log4j和Log4Net比较常用。 一. 下载从 http://logging.apache.org/log4net/download_log4net.cgi 下载最新版本 log4net-1.2.15-bin-newkey...原创 2016-01-06 12:49:35 · 140 阅读 · 0 评论 -
C# 开发windows服务
windows下无法像linux那样直接运行nohup等命令运行后台程序,只能调用相应api做成服务。服务可以在没有任何用户登录计算机的情况下运行。C# 建立windows 服务比较方便,直接派生 System.ServiceProcess.ServiceBase,但是只支持windows XP。 /// <summary>/// 1.建立windows服务类,派生...原创 2016-03-11 10:26:59 · 163 阅读 · 0 评论