----- Original Message ----- From: "Sisyphus" <sisyph...@optusnet.com.au>

In any case, I'll try to rebuild the API_test64.dll when I get the time - as that will probably fix the problem, irrespective of the cause. (I'll get back when I've tested that out.)

Yes, I think that fixes the problem. The only test script that now fails is 01_Struct.t.

I built the API_test64.dll manually by running:

cl -c API_test.cpp
cl /LD API_test.obj API_test.def bufferoverflowU.lib
I then renamed the API_test.dll that was produced, to API_test64.dll.

For that to work, in API_test.h, I had to first change:

#ifdef API_TEST_EXPORTS
#define API_TEST_API  __declspec(dllexport)
#else
#define API_TEST_API  __declspec(dllimport)
#endif

to:

#ifdef API_TEST_EXPORTS
#define API_TEST_API  /* __declspec(dllexport) */
#else
#define API_TEST_API  /* __declspec(dllimport) */
#endif

Otherwise, when trying to compile the obj file, I got errors of the type:

API_test.cpp(31) : error C2491: 'nAPI_test' : definition of dllimport data not allowed API_test.cpp(33) : error C2491: 'sum_integers' : definition of dllimport function not allowed API_test.cpp(37) : error C2491: 'sum_integers_ref' : definition of dllimport function not allowed
[and more similar]

I suspect that we need to build the API_test64.dll as part of the Win32::API build procedure (rather than supply a pre-built API_test64.dll).

Cheers,
Rob

Reply via email to