我有這些文件:如何再出口CLR C++靜態庫
- foo.dll
- foo.lib
- foo.exp
- bar.il
- bar.netmodule
「foo」在其導出目錄中定義了函數。
我也有一個Visual Studio 2010中C++項目,該項目將建立一個管理的「bar.dll」
我想「欄中的」靜態鏈接到「foo」和再出口的所有功能,從「富」 。
最後我想酒吧從FOO和FOO定義了一些額外的代碼導出功能。
使用下面的代碼,因爲它引用富,而不是合併酒吧與FOO不起作用。
#pragma comment(linker, "/include:[email protected]")
我該怎麼做?
參見:http://msdn.microsoft.com/en-us/library/f0z8kac4(v=VS.100).aspx
CFF Explorer以驗證導出目錄:http://www.ntcore.com/exsuite.php
參見:http://msdn.microsoft.com/en-us/library/k669k83h.aspx
參見:http://blogs.msdn.com/b/texblog/archive/2007/04/05/linking-native-c-into-c-applications.aspx
call "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\link.exe" /DLL /LTCG /CLRIMAGETYPE:IJW /ASSEMBLYMODULE:bar.netmodule /OUT:bar.dll foo.lib bar.netmodule
foo.netmodule : fatal error LNK1302: only support linking safe .netmodules; unable to link ijw/native .netmodule
我不知道它可以將foo合併到欄中。儘管如此,可以將欄中的導出符號轉發回foo。就像kernel32爲ntdll中的某些函數所做的那樣。如果你只想檢查導出庫,你也可以在VS命令提示符下使用[depends](http://www.dependencywalker.com)或'dumpbin/exports bar.dll'。 – Rup 2011-04-05 13:36:24