C 中的DllImport使用筆記

2021-07-08 20:25:35 字數 1288 閱讀 1237

using system.runtime.interopservices;

[dllimport("kernel32")]

private

static

extern

intgetprivateprofilestring(string section, string key, string def, stringbuilder retval, int size, string filepath);

這是c#中呼叫windowsapi讀取ini配置檔案的例子。

[dllimport("kernel32")]這叫引入kernel32.dll這個動態連線庫。

private static extern void 函式名(引數,[引數]);

[attributeusage(attributetargets.method)]

public

class dllimportattribute: system.attribute

//定位引數為dllname

public callingconvention callingconvention; //引數指示入口點的呼叫約定。如果未指定 callingconvention,則使用預設值 callingconvention.winapi。

public charset charset; //引數指示用在入口點中的字符集。如果未指定 charset,則使用預設值 charset.auto。

public

string entrypoint; //引數給出 dll 中入口點的名稱。如果未指定 entrypoint,則使用方法本身的名稱。

public

bool exactspelling; //引數指示 entrypoint 是否必須與指示的入口點的拼寫完全匹配。如果未指定 exactspelling,則使用預設值 false。

public

bool preservesig; //引數指示方法的簽名應當被保留還是被轉換。當簽名被轉換時,它被轉換為乙個具有 hresult 返回值和該返回值的乙個名為 retval 的附加輸出引數的簽名。如果未指定 preservesig,則使用預設值 true。

public

bool setlasterror; //引數指示方法是否保留 win32"上一錯誤"。如果未指定 setlasterror,則使用預設值 false。

public

string value }

}

關於c 中的dllimport

msdn中對dllimportattribute的解釋是這樣的 可將該屬性應用於方法。dllimportattribute 屬性提供對從非託管 dll 匯出的函式進行呼叫所必需的資訊。作為最低要求,必須提供包含入口點的 dll 的名稱。並給了乙個示例 dllimport kernel32.dll e...

關於C 中的DLLImport

並給了乙個示例 dllimport kernel32.dll entrypoint movefilew setlasterror true,charset charset.unicode,exactspelling true,callingconvention callingconvention.s...

關於C 中的DLLImport

關於 c 中的 dllimport msdn 中對dllimportattribute 的解釋是這樣的 可將該屬性應用於方法。dllimportattribute 屬性提供對從非託管 dll 匯出的函式進行呼叫所必需的資訊。作為最低要求,必須提供包含入口點的 dll 的名稱。dllimport us...