• ベストアンサー

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); } どこが原因になってるのか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> HANDLE handle; > HANDLE = WTSOpenServer(&p); ではなく handle = WTSOpenServer(&p); では?

kou323
質問者

お礼

ありがとうございました、直りました

その他の回答 (2)

  • wolfberry
  • ベストアンサー率23% (3/13)
回答No.3

問題がいくつかあります。 まず、Cでは変数宣言は { の直後でしかできません。 p= name;の実行文の後ろで HANDLE handle;が宣言されているので、このエラーになります。 次に、 HANDLE = WTSOpenServerは、handle = WTSOpenServerの間違いですね。 ちなみに、WTSOpenServerへのNetBIOS名はこのプログラムのサーバ名で良いのであれば、NULLが指定できます。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>HANDLE = WTSOpenServer(&p); 文法違うでしょ(^^;; handle= WTSOpenServer(&p); HANDLEは型なんですから。 変数に突っ込んで。

関連するQ&A

専門家に質問してみよう