dopisane: http://support.microsoft.com/kb/q141485/
undecorated symbols - pewnie podałeś mu objekty ze spacjami w nazwie bez cudzysłowy ?
Jest takie api BOOL PathQuoteSpaces(lpString) które to dodaje cudzysłów do podanego stringu jeśli w nim są spacje. Ma minusa - nie sprawdza czy już jest cudzysłów.
W drógą stronę działa BOOL PathUnquoteSpaces(lpString)
co robisz z link'em ? :)
masz tu kilka przykładów
wylistowanie zawartości LIBa
link.exe -lib /nologo D:\IBpro\libs\New_library.lib /list
link.exe -lib /nologo "D:\IBpro\libs\New library.lib" /list
usunięcie objektu (pliku .obj) z LIBa
link.exe -lib /nologo D:\IBpro\libs\New_library.lib /remove:YesNoBox.obj
link.exe -lib /nologo D:\IBpro\libs\New_library.lib /remove:"Yes No Box.obj"
zapis objektu na dysk
link.exe -lib /nologo D:\IBpro\libs\New_library.lib /extract:xOpenFile.obj /out\libs\OpenFile.obj
dodanie lub podmiana objektu
link.exe -lib /nologo D:\IBpro\libs\New_library.lib SH_CreateDirectory.obj
tworzenie nowej biblioteki
link.exe -lib /nologo CenterDialog.obj /out\IBpro\libs\dialogs.lib
podczas dodawania/podmiany objektów dobrze jest uruchomić linkera z currentdir=folder pliku obj żeby nie dodawał całej ścieżki do nazwy objektu
bo jeśli mu podasz
link.exe -lib /nologo D:\IBpro\libs\New_library.lib "c:\moje liby\SH_CreateDirectory.obj"
to w LIBie zrobi sie objekt o nazwie "c:\moje liby\SH_CreateDirectory.obj"
A zatem każdy path i każdy objekt, który podajesz w commandline linkerowi musi być ujęty w cudzysłów jeśli zawiera spacje
link ma jeszcze switcha -dump i pewnie jeszcze inne (patrz na opis programu dump.exe, który to przekierowuje parametry do link.exe z dodatkiem -dump)
piszę program do zabawy właśnie z tym linkerem, link do sampla poniewiera się gdzieś tu w dziale C/C++ (lib creator)
Użyłem CreatePipe() do 'odbierania' tego co link normalnie pisze w konsoli