From: Thomas B. <bo...@bo...> - 2003-10-30 19:35:50
|
On Thu, 30 Oct 2003, Gisle Vanem wrote: > > It's even easier in gcc: > > int sharedVar __attribute__((section(".shr"), shared)) = 0; Thank you. Now it gets weird! I did this: #define SHARED __attribute__((section(".shr"), shared)) HHOOK hKeyhook SHARED = 0; HINSTANCE hDll SHARED; int keysDown[KEYS_MAX] SHARED; int keysDownTotal SHARED = 0; int peakKeysDown[KEYS_MAX] SHARED; int peakKeysTotal SHARED = 0; int peakKeysChanged SHARED = false; The compilation of the DLL looks like this: c++ -c -I/usr/local/include -I/usr/local/lib/wx/include/msw-2.4 -D__WXMSW__ -mthreads -DWXUSINGDLL=1 -DBUILD_DLL -g -Wall -o kbhook.o kbhook.cpp c++ -c -I/usr/local/include -I/usr/local/lib/wx/include/msw-2.4 -D__WXMSW__ -mthreads -DWXUSINGDLL=1 -DBUILD_DLL -g -Wall -o vk.o vk.cpp dllwrap --output-lib=libkbhook.a --dllname=kbhook.dll --driver-name=gcc kbhook.o vk.o d:\mingw\bin\dllwrap.exe: no export definition file provided. Creating one, but that may not be what you want Now, when I start up an application linked to the DLL via the stub library kbhook.a, I get this at startup: The application or DLL d:\wxWindows_2.4.0\projects\mything\kbhook.dll is not a valid Windows image. Please check this against your installation diskette. And the application fails to run any further. Before I added the SHARED business, the program liked the DLL just fine -- but of course my variables were not shared with all instances of it. Any clue? Thanks! -- Thomas Boutell Boutell.Com, Inc. http://www.boutell.com/ Sync my card with your PDA or address book: http://tocard.biz/a7oiljb6 |