KarLKoX wrote:I continue to use vc6 when i want to create a static link (always with a .desc file)
Also my opinion. Since PB 4.0 I always use .def files when compiling the c++ codes and link the static libs using "Import/EndImport". For my personal purposes I went away from the PB Userlib concept and instead of that I go the static lib way. Also when I do access dynamic linked libraries ... no more Callfunction/Callfunctionfast as here also I do go the Import/EndImport way IF the wrapper lib file of the dll is present.
I heared somewhere that even if the dll comes as standalone its possible to generate a wrapper lib for that one using special tools. Can that be done via MinGW's BuildLib or whatever? IMHO thats the way MinGW accesses the WinAPI dlls in the Windows system, correct?
VS2005 is a major version optimised for .NET and CLR runtime though i think this is why it is more and more difficult to keep retrocompatibility.
Even if I do not use NET related things in my c++ code?
However I got both NET env's installed on my WinXP system (1.1 and 2.0) which doesnt prevent my VS2005 approach producing the trouble mentioned above.
but for DLL, VS2005 is far more better (in performance).
Yupp, dlls do work without problems on both env's VS2005 C++ and VC6.
PS: The funny thing is that I just recognised that I did compile my static lib without a def file so a lib file using the extern C stdcall smbol names resulted. Here you can see the symbol names within my resulted "AvsSupport.lib":
Code: Select all
-export:_avs_init@0 -export:_avs_exit@0 -export:_avs_create_env@0 -export:_avs_open_file@12 -export:_avs_open_script@12 -export:_avs_getvframe@12 -export:_avs_getaframe@28 -export:_avs_close@8 -export:_avs_destroy_env@4 -export:_avs_getlasterror@8 -export:_avs_getlasterror_CRLF@8
(the msvcrt.lib also was "embedded" while compiling, means only +250kb and so no other dependencies for future usage in PB))
In my PB code I used the following part to use that lib:
Code: Select all
Import "I:\Programme\PureBasic\Sources\AvsSupport_lib_VS6\Release\AvsSupport.lib"
avs_init()
avs_exit()
avs_close(pScriptEnvironment.l, clip_num.l)
avs_create_env()
avs_destroy_env(pScriptEnvironment.l)
avs_getaframe(pScriptEnvironment.l, clip_num.l, pbuf.l, start.q, count.q)
avs_getlasterror(pChar.l,len.l)
avs_getlasterror_CRLF(pChar.l,len.l)
avs_getvframe(pScriptEnvironment.l, clip_num.l, frame.l)
avs_open_file(pScriptEnvironment.l, pChar.l, VideoInfo.l)
avs_open_script(pScriptEnvironment.l, pChar.l, VideoInfo.l)
EndImport
So as you can see no Aliases using "AS" where used
but it worked anyway without "unreferenced symbol" errors!

Did Fred implement some symbol recognising stuff in PB4's Import Routines?