----- Original Message -----
From: "Brian Hook" <bri...@py...>
To: <gam...@li...>
Sent: Wednesday, November 07, 2001 1:18 PM
Subject: [GD-Windows] Linker hell
> Any ideas?
>
> Brian
-- I hope at best the following ideas help you. And at worst you are not mad
I suggest them.
-- Edit the Text File of the project whenever adding files and changing
linkages. I may get flamed by MS people for this, but I just don't trust the
Menu interface, and that is not very well designed right now.
-- There are multiple places inside the menuing system to add remove change
and modify which files are linked and not linked, and if one is removed in
one place, not in another place, then it is not properly removed or added.
It would be good if there is only one place to do all that in the menu.
-- Back to editing the text file. That is kind of cool too as it also allow
me arrange some folders alphabetically. (Not as anal nor as tedious as it
sounds, if you insert as you add one at a time.) When I add or remove
something in the text file, then I know for sure which is added and which is
not added.
-- I link to the following: winmm.lib kernel32.lib user32.lib gdi32.lib
winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib
uuid.lib odbc32.lib odbccp32.lib. Yes, I am using dynamic .dll so that I
have the best chance of running on windows versions. (Doing a lot of
CoCreateInstance stuff on all the interfaces, querying for the function
entry points before using them, etc.)
-- Then in another separate folder, I link to my D3D and DX libs. Another
good thing about editing the text file directly, is that that stuff can be
organized.
-- As for string functions, I don't use the C lib ones at all. The ones you
mention isn't bad.
-- But vsprintf and sscanf type functions, if you look at the
implementations, is tremendously dangerous (in terms of going off writing
past the safe locked memory). If you roll a few of the C string funcs you do
use, then it may make it easier to solve linkage problems.
-- So the short summary is, edit the text file directly to add and remove
libs, and to read the libs by opening them. You can see which functions are
inside and not inside a lib, by reading them directly inside the binary
reader of Visual Developer.
-- To help track down your problem, you may also want to explicitly link to
a direct copy (i.e., not use the file path) of each of your libs, so you
know the exact content of what you are linking.
-- Hope any of the above suggestions can help you resolve your linkage.
|