C++Builder相談室 Part10
■ このスレッドは過去ログ倉庫に格納されています
0717デフォルトの名無しさん
NGNGPascalで記述したクラスのメンバ関数で、引数にHWND型を取る物を利用しようと思ったのですが、リンクの段階でエラーが発生してしまいます。
試行錯誤というか力技で、解決したように思うのですが、何か邪道な感じというか、もっとスマートな方法があるんじゃないかと考えています。
Pascalソースは、プロジェクトに追加>ユニットのコンパイルという手順を踏んで、生成された.hppファイルを、メインフォームcpp(という呼称でいいのかは不明です。TMainForm::FormCreateとかが自動生成される先)からIncludeし、メンバ関数を利用しようとしました。
インスタンスの生成や、呼び出し位置のスコープ等は間違ってないように思います。
エラー内容としては、関数(void *)の実体が定義されていない〜という物です。
BCBでのHWNDの型定義がvoid *で、本来のPascalソースからのオーバーロード関数として解釈されてんじゃないかと踏んで、本来のPascalソースで引数の型(HWND)をLogWord(windows.pasから)で定義しなおしたところ、コンパイルも動作も、確認できました。
動作してるならいいじゃねーかって感じですが、すごくFAQな感じがします。
いちおう検索してみたのですが、2chのBCBスレで「Pascalソースの関数内でAPIを呼んでる香具師は使えない」とかそんな感じの書き込みくらいしか、情報を得られませんでした。
よろしくお願いします。
最初、Delスレ書き込んだのですが、スレ違いくさかったので、こちらに移民してきました
■ このスレッドは過去ログ倉庫に格納されています