Sun May 09 08:50:52 2010: Request 55660 was acted upon.
Transaction: Correspondence added by sisyph...@optusnet.com.au
       Queue: Win32-API
     Subject: Re: [rt.cpan.org #55660] [PATCH] Partial win64 support for 
Win32::API 
   Broken in: (no value)
    Severity: (no value)
       Owner: COSIMO
  Requestors: sbenn...@accelrys.com
      Status: open
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=55660 >



----- 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