- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++でDLL、エントリポイントが出来ない?)
VC++でDLL、エントリポイントが出来ない?
このQ&Aのポイント
- VC++でDLLを作成し、DelphiXE2アプリで利用する際にエントリポイントが見つからないという問題が発生しています。
- 作成したDLLを同じVC++で呼び出すと問題なく使用できるため、DLL自体に問題はないと考えられます。
- エントリポイントの一覧が表示されず、他のDLLやLIBファイルではきれいな関数名の一覧が表示されるため、何か常識的な部分を知らない可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「DLL エクスポート DEFファイル」あたりで検索して下さい。 http://elksimple.web.fc2.com/memo/dll.html とか見つかるかと思いますが……。 戻り値や引数の型、数によってdllexportでエクスポートした場合の名前が変わります。 dllimportならば、同じ形式でエクスポート名を生成しますから問題は出ないのですが…… 他の環境で使う場合には使いにくいものになります。 extern "C" とすることで、命名規則が微妙に変わりますが…やはり使いやすいものにはなりません。 defファイルで指定する方法ならば名前は固定化できます。 # ただし、この方法ではクラスは使えない…でしょう。 あと… [技術者向] コンピューター > プログラミング > C・C++ のカテゴリの方がよろしいかと……。 # まぁ、使うりがDelphiでも、DLL作成はVCのようですし。
お礼
ありがとうございました。おすすめのサイトでとても勉強になりました。 私はMSが世界標準だろうから、とても理想的で素直に出来ていると勝手に 思っていました。最近はやりのキネクトセンサーをdelphiのアプリに実装 しようとして今回の問題に直面。defファイルを試して見ましたところ 確かに名前はdumpbin で出てくるのですが、 add = @@?afjadsjfoi@lkjみたいな 表示で、delphiではやはりエントリポイントが見つかりません。と言われます。 他のDLLを覗いてみると _add _divide _showFunc のように整然とエントリポイントの一覧が後半につながっています。 参考書類はどれも簡単にDLLを作り、そのまま使えるように書いてあるのが不思議です。