C 使用技巧 呼叫DLL vc寫的dll

2021-04-12 21:32:29 字數 705 閱讀 7768

使用c#時不免用呼叫別的dll,如win32的api和自己以前做的dll, 

c#呼叫dll很像vb,下面討論的c#呼叫dll的方式。 

看看下面的例子,演示了怎麼定義dll函式介面 

public class utility 

class myclass  } 

值得注意的是,預設的呼叫規則(callingconvention)是stdcall,同winapi,在 

c++裡是__stdcall的形式,函式入口(entrypoint)預設是同名,如createdirectory 

的定義也可以為 

[dllimport("kernel32")] 

static extern bool createdirectory(string name, securityattributes sa); 

win32 api原型為 

bool createdirectory( 

lpctstr lppathname,                         // directory name 

lpsecurity_attributes lpsecurityattributes  // sd 

); 在呼叫win32 api時注意那些型別的轉換,如結構(struct)、指標(pointer), 

有關各種語言之間型別轉換和dllimport屬性的詳細資訊可以參考sdk文件 

通過silktest呼叫c 寫的工具獲取dl

通過silktest呼叫c 寫的工具獲取dll檔案版本資訊的方法 我們在測試的時候有時候要檢查dll檔案的資訊,例如 檔案版本等等,為了解決此種問題,我用c 寫個工具,通過silktest呼叫這個工具從而獲得dll檔案的相關資訊,如 版本號等等。下面就簡單介紹這個方法 首先 用c 寫個工具test0...

C 使用技巧 呼叫DLL

使用c 時不免用呼叫別的dll,如win32的api和自己以前做的dll,c 呼叫dll很像vb,下面討論的c 呼叫dll的方式。看看下面的例子,演示了怎麼定義dll函式介面 public class utility class myclass 值得注意的是,預設的呼叫規則 callingconve...

C 呼叫C 寫的DLL

方法有不少,這裡記錄其中的乙個方法。編譯 呼叫通過了的。期間遇到的問題是c 呼叫時傳遞string型別的引數和返回值會報錯。targetinvocationexception異常,值不在範圍內,記憶體不可訪問等等。解決方法是 在c 的dll中將string型別的引數返回值改為lptstr型別。在c ...