dll 中返回 void * 类型的函数,如何在C#中声明?


C++中原型是怎样的:

extern "C" _declspec(dllexport) void * creat(const char* password);

整个怎么在C# 中调用啊,void * 正常对应的是 IntPtr,可总是说签名不正确,byte[]也不行

c# dll C++

种里寻她百千度 10 years, 6 months ago

你应该先贴问题代码。 我觉得可能是没有指定 CallingConvention


 [DllImport("???.dll", EntryPoint = "creat", ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs(UnmanagedType.SysInt)]
public static extern IntPtr Create(...);

最终性幻想 answered 10 years, 6 months ago

Your Answer