我用 C++ 編寫了一個(gè) DLL,但是即將把 DLL 提供給 C# 調(diào)用,因?yàn)?C++ 非托管代碼的緣故,導(dǎo)致我不知道如何編寫 C# 的導(dǎo)入接口,就是類似于 DllImport 那樣,具體地說就是我不知道如何用 DllImport,函數(shù)的參數(shù)是 char、char *、xonst char *、int、自定義的結(jié)構(gòu)體等,那么應(yīng)該如何導(dǎo)入
ringa_lee
一般在dll里面函數(shù) 用dllexport 類型對(duì)應(yīng)就行,比如 int 對(duì)應(yīng)Int32 char*對(duì)于String
BSTR --------- StringBuilder
LPCTSTR --------- StringBuilder
LPCWSTR --------- IntPtr
handle---------IntPtr
hwnd-----------IntPtr
char *----------string
int * -----------ref int
int &-----------ref int
void *----------IntPtr
結(jié)構(gòu)體在C#里面重新定義。
C++ 中一般用 WINAPI,
如
__declspec(dllexport) int WINAPI fun(int x){return x;}
然后DllImport就行,P/Invoke很多例子的。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)