- ベストアンサー
HINSTANCEの型
LPSTR は char* なので、 int WINAPI WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance , LPSTR lpCmdLine ,int nCmdShow ) を int WINAPI WinMain(HINSTANCE hInstance ,HINSTANCE hPrevInstance , char* lpCmdLine ,int nCmdShow ) と書き換えてもコンパイルできます。 HINSTANCEはvoid *型だという記述を見たのですが、void *で書き換えてもエラーがでてしまいます。 どうしたらよいのでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どうしたらよいかという質問なら書き換えなければ良いだけですが HINSTANCEはvoid*型ではないようです windef.hを見ると DECLARE_HANDLE(HINSTANCE); と書かれています マクロを展開すると #define struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ *HINSTANCE になります。 int型変数を持つ構造体のポインタですね。
その他の回答 (1)
- aris-wiz
- ベストアンサー率38% (96/252)
>HINSTANCEはvoid *型だという記述を見たのですが HINSTANCEではなくHANDLE型の間違いでしょう。 インスタンスハンドルはNo1さんのとおり構造体の 同義名ですので、書き換えることはでき無いでしょう。 やるとしても、結局自分で同義名を定義するだけ。 #typedef struct HINSTANCE__* MYINSTANCE; それらの型をわざわざ書き換える必要があるのか もう一度しっかり検討した方がいいと思います。
お礼
ご回答ありがとうございます。 大変よくわかりました。 書き換えが目的というより、具体的に何ビットの情報なのか興味があったわけです。
お礼
ご回答ありがとうございます。 大変よくわかりました。 書き換えが目的というより、具体的に何ビットの情報なのか興味があったわけです。