dポイントプレゼントキャンペーン実施中!

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 *で書き換えてもエラーがでてしまいます。
どうしたらよいのでしょうか。

A 回答 (2件)

どうしたらよいかという質問なら書き換えなければ良いだけですが


HINSTANCEはvoid*型ではないようです
windef.hを見ると
DECLARE_HANDLE(HINSTANCE);
と書かれています
マクロを展開すると
#define struct HINSTANCE__ { int unused; }; typedef struct HINSTANCE__ *HINSTANCE
になります。
int型変数を持つ構造体のポインタですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
大変よくわかりました。

書き換えが目的というより、具体的に何ビットの情報なのか興味があったわけです。

お礼日時:2007/12/07 18:42

>HINSTANCEはvoid *型だという記述を見たのですが


HINSTANCEではなくHANDLE型の間違いでしょう。
インスタンスハンドルはNo1さんのとおり構造体の
同義名ですので、書き換えることはでき無いでしょう。
やるとしても、結局自分で同義名を定義するだけ。
#typedef struct HINSTANCE__* MYINSTANCE;

それらの型をわざわざ書き換える必要があるのか
もう一度しっかり検討した方がいいと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
大変よくわかりました。

書き換えが目的というより、具体的に何ビットの情報なのか興味があったわけです。

お礼日時:2007/12/07 18:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!