- ベストアンサー
HANDLEのエラー
C言語で #include<stdio.h> #include<windows.h> #include<wtsapi32.h> #include <process.h> int main(){ /*ハンドルをオープンする*/ /*NetBIOS名は16文字以下*/ char name[16]="NetBIOSname"; char *p; p= name; printf("%p\n",name); HANDLE handle; HANDLE = WTSOpenServer(&p); printf("%p",handle); } でやると'HANDLE' : typedef 識別子に、クラス メンバ アクセス演算子 (->) を使用しました。とエラー がでてきます、どこがおかしいかわからないです C++で実行するとできました。 #include<stdio.h> #include<windows.h> #include<wtsapi32.h> #include <process.h> int main(){ /*ハンドルをオープンする*/ /*NetBIOS名は16文字以下*/ char name[16]="NetBIOSname"; char *p; p= name; printf("%p\n",name); HANDLE handle = WTSOpenServer((LPSTR)&p); printf("%p",handle); } どこが原因になってるのか教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> HANDLE handle; > HANDLE = WTSOpenServer(&p); ではなく handle = WTSOpenServer(&p); では?
その他の回答 (2)
- wolfberry
- ベストアンサー率23% (3/13)
問題がいくつかあります。 まず、Cでは変数宣言は { の直後でしかできません。 p= name;の実行文の後ろで HANDLE handle;が宣言されているので、このエラーになります。 次に、 HANDLE = WTSOpenServerは、handle = WTSOpenServerの間違いですね。 ちなみに、WTSOpenServerへのNetBIOS名はこのプログラムのサーバ名で良いのであれば、NULLが指定できます。
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>HANDLE = WTSOpenServer(&p); 文法違うでしょ(^^;; handle= WTSOpenServer(&p); HANDLEは型なんですから。 変数に突っ込んで。
お礼
ありがとうございました、直りました