M
Matt Gilarde
Guest
You have to change the external procedure declaration to accept a 64-bit pointer when running on a 64-bit AVM; PROCEDURE WSAStartup EXTERNAL "wsock32.dll" : DEFINE INPUT PARAMETER p-VersionReq AS SHORT. &IF {&PROCESS-ARCHITECTURE} = 32 &THEN DEFINE INPUT PARAMETER ptr-WsaData AS LONG. &ELSE DEFINE INPUT PARAMETER ptr-WsaData AS INT64. &ENDIF DEFINE RETURN PARAMETER p-Return AS LONG. END PROCEDURE. The code you have may require other changes too. You need to look at Microsoft's documentation for all of the functions called as external procedures to see if any parameters have changed. Some functions may take pointers to C structures as parameters so you also have to look at the structures to see if they have changed. The offsets and datatypes used in the GET- and SET- functions may need to change to match changes to the structures used by the functions. Another issue is that if you need to support both 32-bit and 64-bit AVMs you may have to have separate r-code for them if the external procedure declarations are platform-specific. As you can see, this is a complicated topic. Updating this code requires an understanding of how the WIn32 API works.
Continue reading...
Continue reading...