- - PR -
C#からCで作成したダイアログ画面を呼び出す方法
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-14 09:35
諸農です。
遅くなってすみません。
その呼び出しはVCやVBからですか? となると、関数の仕様がわかれば前に進めるかもしれないですね。
それぞれの引数の仕様ですが、次の通りでしょうか? hInstance→アプリケーションのインスタンスでしょうか? hwnd→アプリケーションのメインのウィンドウハンドルでしょうか? kai_cd→1でOKですか? kbun→CharではなくByteでは? ↑ちょっと記憶が曖昧です。変換されましたっけ? Menuhwnd→何らかのウィンドウハンドル? pas→byte? *menu_cd→byteの参照渡し? long vdate→日付を8桁の数値で渡す? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||||||||||
|
投稿日時: 2004-02-14 12:38
あれから調べてみたところhInstanceの指定方法が間違っていたみたいです。
申し訳ない DialogBox(hInstance, "MENU", hwnd, (DLGPROC)MenuDlgProc); この場合、hInstanceにはアプリケーションのインスタンスハンドルじゃなく DLLのインスタンスハンドルを渡さないといけないみたいです。 (DLL内のリソースを使用するため) なので引数としてhInstanceをもらうのではなくDllMainの第一引数で渡される ハンドルをインスタンスハンドルとして保持し、それを使用してみてください | ||||||||||||
|
投稿日時: 2004-02-16 09:41
返信遅くなりまして、申し訳ございません。
⇒VCから確認しています。 私はまだ関数の仕様を理解できていないのでしょうか。 もう一度、よく見直してみます。
それぞれの引数の仕様は以下の通りです。 hInstance:アプリケーションのインスタンスです。 hwnd :アプリケーションのメインのウィンドウハンドルです。 kai_cd :1でOKです。 kbun :Char型でOKです。 Menuhwnd :アプリケーションのメイン画面のリストボックスのハンドルです。 pas :Charです。 *menu_cd :byteの参照渡しです。 vdate :日付を8桁の数値で渡します。
呼び出す側は置いといて、呼び出される側に問題があるのでしょうか。 呼び出される側のコードを修正しないといけないと言うことですよね。 もう少し探りつつ、試してみます。 | ||||||||||||
|
投稿日時: 2004-02-17 08:47
上記のように呼び出されるプログラムを修正したところ、ダイアログが開きました。 (DllMainの記述がなかったので追加しました。) ありがとうございました。 |