C#呼叫c++編寫的dll

iDotNetSpace發表於2009-03-11

c++檔案中函式定義如下:

extern "C"
{
 //__stdcall即callback
 __declspec(dllexport) int __stdcall f_Test(unsigned char pInput[], char ifn[100])
 {

     return 1;
 }
}

c#檔案中函式呼叫如下:

 [DllImport("Test.dll")]//Test.dll是c++檔案生成的dll
static extern int f_Test(byte[] pInput, String fileName);

byte[] Minput = new byte[100];

 f_Test(Minput, fileName);

如果傳遞的引數為結構體,則必須在c#端定義資料成員型別相對應的結構體。

struct point{
 unsigned short xpos;               
 unsigned short ypos;               

} ;

C#端定義如下:

public struct point
{
     public ushort xpos;              
     public ushort ypos;              
 };

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-566847/,如需轉載,請註明出處,否則將追究法律責任。

相關文章