1.问题:
c#调用c++写的dll出现的问题!(c#和c++都是在vs2008上)
2.个人解决:
(1).个人是把在c++的int类型参数去掉,直接通过函数返回,暂时这么处理!
(2). public static extern int ParseRequestAPI([MarshalAs(UnmanagedType.LPTStr)] string strRequestAction, [MarshalAs(UnmanagedType.LPTStr)]string request, [MarshalAs(UnmanagedType.LPTStr)] string priKey, ref REQUESTDATA requestData);
加上[MarshalAs(UnmanagedType.LPTStr)]
(3).调用的时候分配的空间不够,比如 在api函数定义的类型为 byte[] trigger 类型的时候,需要new足够大的空间。
此问题只出现在asp.net调用dll的过程中,在通过建立exe去调试时,返回一切正常!
网上参考:
http://topic.csdn.net/t/20060925/15/5046477.html 问题解决了 主要还是定义的结构数据成员类型问题 把C++ LONG -> C# int
2.
http://www.cnblogs.com/zengjun1980/archive/2008/04/08/1142402.html