WriteFile sous XP 64

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 - 7 juin 2006 à 10:51
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 7 juin 2006 à 12:15
Salut à tous.

Je viens d'installer un XP Pro 64 et horreur, la fonction WriteFile ne fonctionne pas.
Est-ce un problème d'option du compiler où la fonction qui n'est pas compatible avec le 64 bits ???

PS : J'utilise Borland C++ Builder.

A+

9 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2006 à 10:58
WriteFile fonctionne (et heureusement...) sous Win64.

ciao...
BruNews, MVP VC++
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
7 juin 2006 à 11:02
D'ou le problème peut venir ? J'ai une carte mère un peu spécifique qui possède 4 Slot IDE.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2006 à 11:12
C'est l'OS qui gère les périphs, si les disques sont bien reconnus alors le driver disque envoie les données sans problème.
Faudrait savoir le type d'erreur, FormatMessage().

void DisplayLastError(HWND hOwner)
{
  LPVOID lpMsgBuf = 0;
  DWORD dwErr = GetLastError();
  if(dwErr) {
    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                  NULL, dwErr, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
                  (LPTSTR) &lpMsgBuf, 0, NULL);
    if(lpMsgBuf) {
      MessageBox(hOwner, (LPCTSTR)lpMsgBuf, "Error", MB_ICONEXCLAMATION);
      LocalFree(lpMsgBuf);
    }
  }
}

ciao...
BruNews, MVP VC++
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
7 juin 2006 à 11:12
Oops je précise que mon WriteFile me sert à lire des disque dur en bas niveau avec [file://\\.\PhysicalDrive0 \\\\.\\PHYSICALDRIVE0
].
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 juin 2006 à 11:15
Alors sera surement une question de droits du compte ou truc de ce genre.

ciao...
BruNews, MVP VC++
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
7 juin 2006 à 11:17
Merci pour les précision je vais plencher sur le problème.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 juin 2006 à 11:28
"WriteFile me sert à lire des disque dur"
Même en 64 bits, je crois qu'un WriteFile sert surtout à écrire, pas à lire

Pourqoi ne pas commencer par regarder ce que ca donne sur un fichier normal?
0
JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
7 juin 2006 à 12:00
Autant pour moi vecchio56 WrtiteFile me sert à formater des disques et donc à écrire...

Cela étant dit j'ai résolu le problème en diminuant le nombre consécutif de secteurs à écrire je suis passé de 65536 secteurs à 1 et ça marche (Bizarre!!!)
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 juin 2006 à 12:15
Moi le seul truc que j'avais remarqué c'est qu'on doit lire en effet par secteurs (512 octets). Mais j'arrive très bien a lire un seul secteur à la fois.
0
Rejoignez-nous