我通过查看源代码发现,似乎在一个.dll文件中,有多个类(如Class1.cpp和Class2.cpp)。例如,我想使用Class1(puts)中的函数和Class2(puts)中的函数,应该如何构建DLLImport?喜欢这个?
解决方法
public class LibWrap
{
/*
class PINVOKELIB_API CTestClass
{
public:
CTestClass(void);
int DoSomething(int i);
private:
int m_member;
};
*/
[ DllImport("..\\LIB\\PinvokeLib.dll", EntryPoint="[email protected]@@[email protected]", CallingConvention=CallingConvention.ThisCall)]
public static extern int TestThisCalling(IntPtr ths, int i);
// CTestClass* CreateTestClass();
[DllImport("..\\LIB\\PinvokeLib.dll")]
public static extern IntPtr CreateTestClass();
// void DeleteTestClass(CTestClass* instance)
[ DllImport("..\\LIB\\PinvokeLib.dll")]
public static extern void DeleteTestClass(IntPtr instance);
}
@VoidCC