前断时间我刚遇到过这样的情况,后面发现是在重写函数的时候缺少参数,你认真检查下吧
DllImport
贴函数定义和调用代码。
[DllImport(@"message.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
public static extern int sel_account_register(string name, string password, string profile);
调用代码:int i = SelInterface.sel_account_register(string.Empty, string.Empty, string.Empty);
@adaan: 看你的定义 int sel_account_register(string name, string password, string profile),返回值是值类型,怎么可能会有你提到的 “应该返回int类型的函数返回值为空”?
@Launcher: 其实只要调用sel_account_register(string name, string password, string profile)就出现了问题,还没有返回值。。单独测试Dll的时候是正常的。。
@adaan: 出啥问题?
@Launcher:
@adaan: 你这样:
public static extern int sel_account_register(StringBuilder name,StringBuilder password, StringBuilder profile);
StringBuilder name = new StringBuilder(1000);
StringBuilder password= new StringBuilder(1000);
StringBuilder profile= new StringBuilder(1000);
我上面是猜测C++的 API 接口定义是 char* ,最好你能贴出它的C++ API 定义来。