2014-10-05 56 views
0

我成功地使用本教程創建了一個引用C++ DLL的C++可執行文件:http://programmingexamples.wikidot.com/blog:1將程序鏈接到DLL時需要執行的其他步驟

我是一個.NET開發人員。使用.NET,您只需從控制檯項目添加對DLL的引用即可。使用C++,你必須執行三個步驟(全部包含在鏈接中的第四步)。我的問題是:

1) Why do you have to add the LIB as an Additional Dependency (step 4, part 1). I believe it acts as a stub for the DLL, which is the skeleton. This is not needed using .NET. 
2) Step 4 (part 2) asks you to move the DLL to the same directory as the calling program. Do you8 have to do this for every calling 
program? I assume that if you add a reference to the DLL 
(Properties/Common Properties/Add New Reference) that this step is not 
needed? 
3) Step 4(part 3) states that you must specify the location of the header files. Why is this step needed if the header files are part of the DLL. Is this because they are precompiled? 

據我所知,C++和Visual Basic.NET/C#.NET是兩個完全不同的語言,但是我還不明白爲什麼需要這些額外的步驟。

回答

0
  1. 你可以閱讀有關的lib這裏What is inside .lib file of Static library, Statically linked dynamic library and dynamically linked dynamic library?

「你並不需要的.lib文件中使用一個動態庫,但沒有一個 你不能從DLL正常治療功能函數在你的 代碼中,相反,你必須手動調用LoadLibrary來加載DLL(完成後可以使用 FreeLibrary),然後GetProcAddress獲取DLL中函數或數據項的 地址,然後你必須將 返回地址給a適當的指針函數以便 使用它。「

  • 您不必DLL的移動到可執行文件的目錄。你可以將它分配給windows路徑http://www.computerhope.com/issues/ch000549.htm - 這就是dll的需求。

  • 頭文件就像接口。它們包含函數的聲明。 Why have header files and .cpp files in C++?「頭文件因此是必需的,因爲C++編譯器無法單獨搜索符號聲明,因此,您必須通過包含這些聲明來幫助它。」

  • 相關問題