francoisok
Messages postés2Date d'inscriptionmardi 30 août 2005StatutMembreDernière intervention 7 février 2007
-
7 févr. 2007 à 13:18
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
14 févr. 2007 à 13:33
Bonjour,
J'ai une DLL ecrite en C : ( il s'agit de la description exterieure de la dll)
La fonction est decrite de cette maniere:
long DeviceDiscovery(
LPSTR pDeviceList, //pointer to the user allocated device list
DWORD dwMaxNumberDevices, //maximum number of devices that fit the device listing
DWORD dwResponseTimeout, //number of seconds to wait for a response
DWORD lpResults //the number of devices discovered by the DLL
};
Je l'ai traduite de cette facon en delphi:
function DeviceDiscovery(pDeviceList:PwideChar;maxNumberDevice: Dword;responseTimeout: Dword;results: Dword):Result;stdcall; External DLL_Name name 'DeviceDiscovery';
Cependant chaque fois que j'appelle cette fonction, je me retrouve face a une erreur de type Eaccessviolation, 'Violation d'acces a l'adresse 100017D3 dans le module 'DLL_Name'. Ecriture de L'adresse 0000000A.
L'erreur vient de la variable de type LPSTR( long pointer String), que j'ai traduit en PwideChar.
Je sais plus quoi faire j'ai reserve de l'espace a la variable pDeviceList en utilisant GetMem().