[galib] Building GALib DLL: GAID is a problem!

Peter Jay Salzman p at dirac.org
Fri Oct 26 14:20:27 EDT 2007


Hi all,

I've compiled a GALib DLL (which actually exports symbols), but so far, I've
not been able to *use* the DLL.  However, there are 2 specific questions I'd
like to ask.


First Question:

   I've placed "GA_DLLDECL" in every non-template class definition except
   for "GAID".   When I change this definition:

         class GAID
         {
            ...

   to this:

         class GA_DLLDECL GAID
         {
            ...

   I get the following compile time error:


      gaid.h(30) : error C2470: 'GAID' :
      looks like a function definition, but there is no parameter list;
      skipping apparent body

   I understand what the compiler is telling me.  I just don't know how to
   "fix" it, since it doesn't look like a parameterless function to me.



Second Question:

   In the project settings, I use in Properties | C/C++ | Command Line:

      /D "COMPILE_GALIB_AS_DLL"
      /D "_CRT_SECURE_NO_DEPRECATE"

   However, when I look in gaconfig.h at this code:

      #if defined(COMPILE_GALIB_AS_DLL)
      #define GA_DLLDECL __declspec(dllexport)    <--- greyed out
      #elif defined(USE_GALIB_AS_DLL)
      #define GA_DLLDECL __declspec(dllimport)    <--- greyed out
      #else
      #define GA_DLLDECL                          <--- colored
      #endif

   Because the 2nd line is greyed out and the 6th line is colored, it looks
   like VC++ is not seeing my #define for COMPILE_GALIB_AS_DLL.

   Furthermore, when I let the mouse hover over this line of code:

      class GA_DLLDECL GAID

   a box pops up saying "#define GA_DLLDECL", not "__declspec(dllexport)".
   So it really really seems like VS is not seeing my #define.


I noticed many similar question in the archives, but the answers are either
non-applicable (I'm not using gcc) or else not correct (I'm already
compiling this as a C++ program).

Help?

Thanks!
Pete



More information about the galib mailing list