Thread overview
compiling wxD App
Apr 21, 2005
Nils Hensel
Apr 21, 2005
Regan Heath
Apr 21, 2005
Nils Hensel
Apr 21, 2005
TechnoZeus
Apr 21, 2005
Regan Heath
April 21, 2005
Hello everyone,

I would like to know if anybody here has any experience using wxD on Windows. I compiled wxWidgets (2.5.5, maybe theres the catch?) and then compiled the wxD Sources. Everything went okay except for the XRC Sample.
The strange thing is that every sample has a size of about 10 MB. At least some of them are working.

I copied wxc.lib and wxd.lib to c:\dmd\lib and all of the wxWidgets libs  to c:\dm\lib. I also copied the includes and .d files to directories in the include path. I thought compiling the samples from the console without a makefile would be easy now but everytime I try to compile a source (e.g. minimal.d) I get a truckload of messages like these:

...
C:\dm\bin\..\lib\wxbase25d.lib(stdpaths)
 Error 42: Symbol Undefined _SHGetSpecialFolderLocation@12
C:\dm\bin\..\lib\wxbase25d.lib(registry)
 Error 42: Symbol Undefined _RegCloseKey@4
C:\dm\bin\..\lib\wxbase25d.lib(registry)
 Error 42: Symbol Undefined _RegOpenKeyExA@20
C:\dm\bin\..\lib\wxbase25d.lib(registry)
 Error 42: Symbol Undefined _RegEnumKeyA@16
...

Could someone point me to what I'm missing here please. I like D and wxWidgets and using a combination of both would be fantastic but I've no idea what my mistake is.

What libraries do I have to link into the executable? wxd.lib and wxc.lib or th wx*.lib as well?

Thanks in advance,
Nils
April 21, 2005
On Thu, 21 Apr 2005 10:37:02 +0200, Nils Hensel <nils.hensel@web.de> wrote:
> Hello everyone,
>
> I would like to know if anybody here has any experience using wxD on Windows. I compiled wxWidgets (2.5.5, maybe theres the catch?) and then compiled the wxD Sources. Everything went okay except for the XRC Sample.
> The strange thing is that every sample has a size of about 10 MB. At least some of them are working.
>
> I copied wxc.lib and wxd.lib to c:\dmd\lib and all of the wxWidgets libs   to c:\dm\lib. I also copied the includes and .d files to directories in the include path. I thought compiling the samples from the console without a makefile would be easy now but everytime I try to compile a source (e.g. minimal.d) I get a truckload of messages like these:
>
> ...
> C:\dm\bin\..\lib\wxbase25d.lib(stdpaths)
>   Error 42: Symbol Undefined _SHGetSpecialFolderLocation@12
> C:\dm\bin\..\lib\wxbase25d.lib(registry)
>   Error 42: Symbol Undefined _RegCloseKey@4
> C:\dm\bin\..\lib\wxbase25d.lib(registry)
>   Error 42: Symbol Undefined _RegOpenKeyExA@20
> C:\dm\bin\..\lib\wxbase25d.lib(registry)
>   Error 42: Symbol Undefined _RegEnumKeyA@16
> ...
>
> Could someone point me to what I'm missing here please. I like D and wxWidgets and using a combination of both would be fantastic but I've no idea what my mistake is.
>
> What libraries do I have to link into the executable? wxd.lib and wxc.lib or th wx*.lib as well?

The symbol "SHGetSpecialFolderLocation" is defined in SHELL32.LIB
The rest are in ADVAPI32.LIB

Include those on the command line to compile.

Regan.

p.s. If you're interested in how I know these libs contain these symbols, I used dumpbin (an exe that comes with borland c builder) to dump the exports from the lib files that come with microsoft visual studio.

p.p.s Technically I should be dumping the exports from the libs in the \dm\lib directory, but as they're a different format dumpbin cannot handle them. Does anyone know an app that can?
April 21, 2005
Regan Heath schrieb:
> The symbol "SHGetSpecialFolderLocation" is defined in SHELL32.LIB
> The rest are in ADVAPI32.LIB
> 
> Include those on the command line to compile.
Thanks! After including these and half a dozen other libs it finally compiles.

> p.s. If you're interested in how I know these libs contain these symbols,  I used dumpbin (an exe that comes with borland c builder) to dump the  exports from the lib files that come with microsoft visual studio.
For those of us who are not so fortunate to own such expensive software,  google is your friend. By typing in the unresolved identifiers I could figure out to which lib they belong. Not very comfortable but at least possible.
Thanks a lot for pointing me in the right direction. I wasn't sure if I missed something more fundamental in the process.

I already started porting a wxPython App to D and it works rather well. A few minor pitfalls though, like some missing basic functionality and I have to declare all constants like wxALIGN_LEFT etc. but then again at least it's usable.

Regards,
Nils
April 21, 2005
Try this metasearch engine also...

http://ixquick.com/eng/advanced_search.html

"Nils Hensel" <nils.hensel@web.de> wrote in message news:d488jl$31gi$1@digitaldaemon.com... *snip*
> For those of us who are not so fortunate to own such expensive software,
>   google is your friend. By typing in the unresolved identifiers I could
> figure out to which lib they belong. Not very comfortable but at least
> possible.
*snip


April 21, 2005
On Thu, 21 Apr 2005 15:11:06 +0200, Nils Hensel <nils.hensel@web.de> wrote:
> Regan Heath schrieb:
>> The symbol "SHGetSpecialFolderLocation" is defined in SHELL32.LIB
>> The rest are in ADVAPI32.LIB
>>  Include those on the command line to compile.
> Thanks! After including these and half a dozen other libs it finally compiles.
>
>> p.s. If you're interested in how I know these libs contain these symbols,  I used dumpbin (an exe that comes with borland c builder) to dump the  exports from the lib files that come with microsoft visual studio.
> For those of us who are not so fortunate to own such expensive software,   google is your friend. By typing in the unresolved identifiers I could figure out to which lib they belong. Not very comfortable but at least possible.

Are the specs for the various lib types open, they must be surely... if so, I reckon writing a program to give a list of exports from a lib (or any type) might be a fun project. Hmm...

> Thanks a lot for pointing me in the right direction. I wasn't sure if I missed something more fundamental in the process.

You're welcome.

Regan