1

次のコードをコンパイルしようとすると:

#define BUFSIZE MAX_PATH 


//....


TCHAR sz_VolumeName[BUFSIZE] ;//11
HANDLE hSearch ;//12
hSearch  = FindFirstVolume(sz_VolumeName , BUFSIZE) ;//13

エラーが表示されます:

[Warning] assignment makes pointer from integer without a cast 

- 13行目に問題あり

ここで何がうまくいかないのですか?

編集:例:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <tchar.h>


#define BUFSIZE MAX_PATH


 int main(int argc, char *argv[])
  {

   TCHAR sz_VolumeName[BUFSIZE] ;
   HANDLE hSearch ;
   hSearch  = FindFirstVolume(sz_VolumeName , BUFSIZE) ; 
   printf("First Volume Name  : %s \n" , sz_VolumeName) ; 
   FindVolumeClose(hSearch) ;
   getchar() ;
   system("PAUSE"); 
   return 0;
       }
4

3 に答える 3

0

試しましたか

hSearch  = FindFirstVolume((LPWSTR)sz_VolumeName , BUFSIZE);
于 2013-07-09T18:19:22.333 に答える
-1

HANDLE はかなり変わったデータ型です。ポインターに似ています。そのエラーが発生する理由は、FindFirstVolume() 関数が整数を返すように見えるためです。これが、エラーが整数に言及している理由です。(一種の)ポインター hsearch を整数に割り当てています。これは、実際にその整数値を割り当てるのではなく、メモリ内の別のポイントを指すように指示します。hsearch が FindFirstVolume からの整数を指すようにするには、次のようにする必要があります。

*hSearch  = FindFirstVolume(sz_VolumeName , BUFSIZE) ;//13

その整数にアクセスしたい場合は、次のようにします。

int myInt = *hSearch

コードで何を達成しようとしているのかわからないので、これがお役に立てば幸いです。

于 2013-07-09T18:55:43.097 に答える