我做了一个非常简单的DLL是这样的:使C++ DLL的C#
extern "C"
{
__declspec(dllexport) int Try(int v)
{
return 10 + v;
}
}
然后我想用它在我的C#应用程序:
class Program
{
[DllImport("TestLib.dll")]
public static extern int Try(int v);
static void Main(string[] args)
{
Console.WriteLine("Wynik: " + Try(20));
Console.ReadLine();
}
}
这是工作,直到我曾尝试传递参数。现在,我已经在运行时出现以下错误:“!ConsoleApplication2 ConsoleApplication1.Program ::试试”
到的PInvoke函数 调用具有不平衡 堆栈。这很可能是因为托管的PInvoke签名 与非托管目标签名不匹配。检查呼叫 约定和PInvoke签名的参数是否与目标 非托管签名相匹配。
我不知道问题出在哪里。
让它'INT __stdcall尝试(int v)按'在你的C++代码。 –