OS WinXP
開発環境 VB6.0 VC6.0
VBで作成したexeでVCで作成したライブラリを使用する際に
静的にリンクする方法がわかりません。
<やったこと>
VC側でDLLと静的ライブラリをそれぞれ作成 (foo.dll, foo.lib)
VB側でDeclareして関数をコール。
Private Declare Sub hoge Lib "foo.dll" () '←こっちはOK
Private Declare Sub hoge Lib "foo.lib" () '←こっちはNG 実行時にファイルが無いとエラーがでる。
<やりたいこと>
他で共用するわけではないので静的ライブラリにしてexeファイルに取り込みたい。
よろしくお願いします。
VBでは静的リンクは出来ないでしょう。
ちなみに
>静的ライブラリにしてexeファイルに取り込みたい。
はVCでlibでリンクさせてもexeファイルにDLLを取り込むことは出来ませんよ。
>はVCでlibでリンクさせてもexeファイルにDLLを取り込むことは出来ませんよ。
は勘違いしたっぽいです。無視しておいてください。
VBではできないのですか。
残念ですが、勉強になりました。
Blueさんありがとうございます。
そのままで、ではないですが、できなくはありませんよ。
VB6とVC++6のコンパイラが生成するobjやlibファイルは互換性が
ありますし、リンカは同じものが使えますし。
昔やったとき、libではなくobjですが、リンカで名前の解決を行わせられる
ようにするため、objファイルの内部で使われている関数などの名前をVB側で
認識できるものにして、VB側ではダミー(宣言だけで中身のない)の関数を作り、それをコンパイルしたobjファイルと事前にVC++で作ったobjを置き換えて
リンクしました。
objファイルの置き換えでできるのですね。
思いつきもしませんでした。
今回はdllを使用しますが、makeファイルでゴリゴリやる
ことがありましたら試してみたいと思います。
K.J.Kさん情報ありがとうございました。
ツイート | ![]() |