-4

私はここで問題を抱えています。問題はhService0

私は Windows フォーム アプリケーションを持っているか、作成しています。

HSERVICE hService=0;
BOOL fSuccess=EXIT_SUCCESS;

if(Wfs_Startup())
{
     // This returns a successful startup even if I write something here 
     // to be displayed by a textbox it does. That means the Startup is ok.
     if(Wfs_Open(&hService))
     {
         // What ever I put here doesn't show on a textbox and the application jumps to
         // the exception of this block which means there's a problem here, at first I 
         // thought it was because of no corresponding logical name on a registry but what 
         // I found out was that if I check below the Startup block and check the hService 
         // it's 0 so it doesn't receive the correct data from the startup.
    }
}

だから私はそれを「私は言う」から次のように書かれた関数を取り出しました:

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdDLine, 
                                                                            int nShowCmd)
{
    //THE CODE BLOCK IS THE SAME AS THE ABOVE THAT GOES HERE.
}

だから私は内側のコードブロックを取りましたFormLoadが、これは私に上記の問題を与えています.FormLoadと の両方を持つことができWinMainますか? を持とうとしたのWinMainですが、エラーがあったので、メインが 2 つというようなことはできないと言ったと思います。また、試したときに引数を含める必要があったため、どのように呼び出すことができますかWinMain。主な問題は、引数を a に追加できないことです。FormLoadFormLoad

この問題を解決するにはどうすればよいですか?

申し訳ありませんが、これを説明する簡単な方法がわかりません。ただし、hService が 0 を返すという問題に注意してください。

この質問を単純化するだけです。

先頭が HRESULT で始まるこのタイプの関数を呼び出す方法は、上記を確認してください。私が欲しいのはその関数を起動することです.FormLoadでそれを呼び出すことについて別の質問がありますが、最初にその種類の関数を呼び出す/起動する方法を知りたいのですが、これは簡単になると思いますか?

問題は、IDE が、Windows フォームで int WinMain を使用できないと言うことです。これは、既にそのようなものがあるためですが、コマンドを使用しているときに動作します。WinMain と Main を使用できますが、WinMain と FormLoad を内部ではなく、プロジェクトまたはページ内に配置することはできません。理解するには、Windows フォーム アプリを作成し、int WinMain コードを入力してみてください。ここで何が問題なのかがわかります。

4

1 に答える 1

0

この問題が発生する理由を説明する素晴らしいチュートリアルを見つけました。

https://msdn.microsoft.com/en-us/library/bb384843.aspx

于 2016-01-12T11:51:14.367 に答える