作者BIAO (超越自己)
看板C_Sharp
标题[问题] C#引用C++ dll
时间Thu Dec 11 13:09:19 2014
各位板友大家好,
小弟目前在使用C#引用C++的dll,
无奈遇到问题,想和板友请教..
目前测试C++ dll时,
两个函式都是在class内,
其中一个是做加法,称A;
另一个称B,是做完运算将数值写入资料表。
在C++内都有用dllexport,没使用extern "C"。
在C#是采用DllImport,有使用EntryPoint参数。
在实际用C#调用过程,
A能够被调用,回传数值也正确,
B则是有回传值,观看回传值为正确,但是数值却无写入资料库。
此C++ dll在用C++调试时是正常的,
恳请板友能够提供排解问题的方法,谢谢。
(注:此C#是发行到IIS下做WebService)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.251.138.110
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1418274561.A.716.html
1F:推 largesperm: extern 不是简单多了吗? 12/11 14:25
2F:→ largesperm: 把方法单纯 extern 出去, C# 一找就找到 也可正常工作 12/11 14:25
回l大的话,目前我正在用extern,
依旧是A函式能用,B函式不行。
这和B函式内又呼叫其他函式有关系吗?
※ 编辑: BIAO (60.251.138.110), 12/11/2014 15:02:46
发现程式其实有动作,但是在条件判断时就跳开了,
目前正在查传入的参数为何?
原C++ dll是char*,但C#是用string传入。
※ 编辑: BIAO (61.219.255.70), 12/12/2014 09:31:37
3F:推 Qbsuran: C#传srting进去会变成wchar_t * 靠windows api转换就可以 12/14 00:42
4F:→ Qbsuran: 解决了 12/14 00:42