[fpc-pascal] Compiling library / Win32 DLL

Tony Pelton tpelton at gmail.com
Thu Dec 29 18:52:31 CET 2005


On 12/29/05, chromdildo <chromdildo at t-online.de> wrote:
> Thanks for your reply.
>
> Whats the difference, when compiling without Lazarus?

i don't know.

i just wanted to mention it, in case it was relevant.

i had started doing development using the FP console IDE.

i then "discovered" Lazarus, and wanting to be able to use a GUI IDE,
i downloaded and installed it.

i then took the exact same code, compiled it, which produced a DLL for
me, and when i tried to get my hosting application to load it, it
complained, saying it wasn't a DLL.

i then loaded the FP IDE, recompiled the same code, and it went back to working.

i posted to the list, asking questions about my problem, but no one
seemed to know why i might be having the problem.

someone even sent me a "dll loader" tool to test whether my DLL would
load with their testing tool.

the DLL _did_ load with the tool, but the application i was using
still wouldn't deal with it, until i recompiled it with the FP console
IDE.

since then, i've just stayed with the console IDE/compiler and i
haven't had any issues.

just as another thought ... because i recently had a problem that
really messed me up for a couple of hours.

i had installed the newer 2.0.2 compiler, after having used the 2.0.1
compiler on my windows machine for a while.

i then loaded up some of my source, and went about doing more
development on 2.0.2.

when i started testing some of my latest code changes, as a DLL within
another application, i was getting ALL KINDS of crazy behavior.

no crashes, just really bizzare behavior from some of the API calls i
was using for my third party application.

stuff that is really hard to explain in any detail in an e-mail ...
but things like "enumerators" within the API suddenly stopped
enumerating ... without error ... function calls that returned enums
were returning the wrong enum value ... stuff like that.

after alot of head scratching and poking and prodding ... i ended up
cleaning up a bunch of "dot o" files from some of the units for the
third party API wrappers that are implemented in pascal, and which
were being compiled by FP.

my problems went away.

some kind of weird issue between 2.0.1 and 2.0.2 in the object files.

i'm not sure if this would be considred "unexpected" ... but at the
time it just didn't occur to me.

so ... make sure you are building all your code, and dependent source
code "clean".

$0.02

Tony



More information about the fpc-pascal mailing list