C#调用C++封装的DLL调试方法小结
2016-09-29 17:55
495 查看
最近做到的项目都会用到C++封装DLL给C#调用,比如说将识别对象的形状跟颜色,通过Opencv处理返回结果给C#,这里要将Opencv图像处理部分封装成DLL;还有根据厂家提供的摄像头SDK的内容(C++),抽取里面需要的封装成DLL给C#调用!封装的DLL调试是比较蛋疼的,在这就里个人觉得有几点经验是比较实用的,总结如下:
1.首先记得修改项目属性:如下:
2.因为不确定问题出在哪一个函数,所以只能根据猜测在相应的位置进行文本日志写入或是进行弹对话框的方式。参考代码如下:
3.如果不会怎么调用的,可以参考这里面的示例:
A.C#调用C++的DLL
B.C#调用C++封装成DLL的结构体及类
1.首先记得修改项目属性:如下:
2.因为不确定问题出在哪一个函数,所以只能根据猜测在相应的位置进行文本日志写入或是进行弹对话框的方式。参考代码如下:
//#include //写本地日志 void savefile(CString filename, char * info) { //将内容写至本地保存起来。。。 int j = 0; char ch[1000] = { 0 }; SYSTEMTIME sys; GetLocalTime(&sys); j = sprintf(ch, "%s", info); j += sprintf(ch + j, "\r\ntime:%02d/%02d %02d:%02d:%02d.%03d \r\n", sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond, sys.wMilliseconds); CFile file; file.Open(filename, CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, NULL); 在原来的基础上追加内容! file.SeekToEnd(); //覆盖 //file.Write(info, strlen(info)); file.Write(ch, j); file.Close(); } //对话框 int ID = 0; CString cs; cs.Format("%i", ID); MessageBox(NULL, cs, NULL, 0); char * info = "Hello World!" MessageBox(NULL, info, NULL, 0);
3.如果不会怎么调用的,可以参考这里面的示例:
A.C#调用C++的DLL
B.C#调用C++封装成DLL的结构体及类
相关文章推荐
- C# 调用 C++ DLL无法调试的问题解决方法
- C++与C#编写的DLL/COM的各种调用方法
- C#中调用 调试C++的DLL
- C#中调用C++ 动态链接库 dll 的方法
- C#调用C++编写的COM DLL封装库的问题解决方案
- 在c#中调用并调试C++的DLL
- C++与C#编写的DLL/COM的各种调用方法
- 在c#项目中调用及调试c++写的dll
- C#调用C++Dll封装时遇到的一系列问题(2)
- C# 发中调用一个采用C++封装好的dll, 其结构体中的二维数转换
- Socket发送消息之c#调用c++DLL方法
- C#调用C++DLL的方法
- com调用的几种方法 及 C#调用C++编写的的COM DLL收藏
- c#、C++等调用Dll方法(未完)
- 非托管C++代码调用C#编写的dll方法
- C# 中调用 C++编写的 dll 的 调试
- 非托管C++代码调用C#编写的dll方法
- C#调用C++版本dll时的类型转换需要注意的问题小结
- C#调用c++封装的dll文件提示未能加载正确的程序集XXX或其某一依赖项。。。
- C#调用C++Dll封装时遇到的一系列问题