C#调用C语言编写的DLL会不会产生什么问题?
我用C语言写了一个函数,这个函数调用了好多其他的C库和自定义函数。然后以这个函数为出口(export)做成了DLL,C#编写的程序调用这个DLL。我自己编写了测试程序,这...
我用C语言写了一个函数,这个函数调用了好多其他的C库和自定义函数。然后以这个函数为出口(export)做成了DLL,C#编写的程序调用这个DLL。我自己编写了测试程序,这个函数都能正常工作,但C#调用这个函数的DLL后,总是出现偶尔的错误,不知道C#调用C语言写的DLL会有什么样的问题?如何排除这些问题?
展开
4个回答
展开全部
首先,C#是可以调用C写的DLL的,引用时VS会自动将这个DLL转换为托管程序。
但是你这个DLL是去调用别的C库就会出问题,因为别的库依然是非托管的。
但是你这个DLL是去调用别的C库就会出问题,因为别的库依然是非托管的。
追问
用c创建DLL是不是就在要创建的函数声明前加上__declspec(dllexport)就可以了?还有其他需要考虑的吗?谢谢!
追答
没什么需要特别注意的,只要声明编译的是一个dll文件就可以了,当然额外还有一些编译选项,不过不是必须的。
dll和exe在PE文件结构上其实并没有本质的区别,你把编译出来的dll后缀改为exe一样可以调用的。
展开全部
[url=http://www.baidu.com/]百度搜索[/url]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#完全可以调用,你只需要注意点就是[DllImport("AIO_API.dll")]的每次使用和释放。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般不会有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询