C#调用C语言编写的DLL会不会产生什么问题?

我用C语言写了一个函数,这个函数调用了好多其他的C库和自定义函数。然后以这个函数为出口(export)做成了DLL,C#编写的程序调用这个DLL。我自己编写了测试程序,这个函数都能正常工作,但C#调用这个函数的DLL后,总是出现偶尔的错误,不知道C#调用C语言写的DLL会有什么样的问题?如何排除这些问题?

首先,C#是可以调用C写的DLL的,引用时VS会自动将这个DLL转换为托管程序。
但是你这个DLL是去调用别的C库就会出问题,因为别的库依然是非托管的。追问

用c创建DLL是不是就在要创建的函数声明前加上__declspec(dllexport)就可以了?还有其他需要考虑的吗?谢谢!

追答

没什么需要特别注意的,只要声明编译的是一个dll文件就可以了,当然额外还有一些编译选项,不过不是必须的。
dll和exe在PE文件结构上其实并没有本质的区别,你把编译出来的dll后缀改为exe一样可以调用的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-03
[url=http://www.baidu.com/]百度搜索[/url]
第2个回答  2012-03-06
C#完全可以调用,你只需要注意点就是[DllImport("AIO_API.dll")]的每次使用和释放。
第3个回答  2012-03-07
一般不会有问题
相似回答