2012-03-01 46 views
1

我需要调用从C#中的C++ DLL函数,C++函数定义是我可以正确调用这个C++ DLL吗?

DWORD Init(char*[],int,int,int); 

,我称它在C#像这样

[DllImport("DLLTest.dll")] 
unsafe public static extern int Init(string[] detailsarray, int amount, int ID1, int ID2); 

//then in main... 

string[] details = new string[3]; 
details[0] = "blahblah"; 
details[1] = "bloobloo"; 
details[2] = "1234"; 

int result = Init(details, 1, 16, 170); 

当我运行它,我得到一个未处理类型为System.BadImageFormatException的异常。我相信当C++ DLL期望char * s时可以传递字符串,而且我也认为可以在C#中用int代替C++中的DWORD,但是如果我没有问题,请告诉我。

谢谢。

编辑 - 我应该补充说,我已经在C++应用程序中测试了这个DLL,它工作正常。

回答