VC2005のDLLを6.0で呼び出すには
VC 2005 Pro Editionで作ったライブラリ(ヘッダ、lib、dll)を頂きました。
頂いたDLLの形式は定義ファイル.defを使わない形式、declspec(dllexport)を使う形式の方です。
呼び出し側はVC6.0EnterPrize(SDK)を使います。
(諸事情により6.0以上にUPすることは不可能)
まず、静的リンクをし、関数を呼び出してみました。
(設定のリンクよりlibをリンクさせ、ヘッダをインクルードして)
すると以下のメッセージが出てしまいます。
リンク中...
Dialog1.obj : error LNK2001: 外部シンボル ""__declspec(dllimport) void
__cdecl Init(unsigned char *,unsigned char *,unsigned char *,unsigned
char *)" (__imp_?Init_Card@@YAXPAE000@Z)" は未解決です
Debug/CardMake.exe : fatal error LNK1120: 外部参照 1 が未解決です
。
link.exe の実行エラー
色々やってみましたが、このエラーから回避できませんでした。
ヘッダ自体に
#ifdef _USRDLL
#define DLL_PORT __declspec(dllexport)
#else
#define DLL_PORT __declspec(dllimport)
#endif
の宣言があるので、別に特別なことをしなくても、大丈夫そうなのですが、何故か出来ません。
次に動的リンクを行っていました。
するとLoadLibraryでエラーになり、GetLastErrrorで14001(エラーメッセージはつかめず)が返ってきました。
(色々調べたところ定義ファイルがないと動的リンクはできないようですね)
というわけでにっちもさっちも行かなくなった状況です。
そこでご質問です。
(1)定義ファイルを使わない形式のライブラリ(暗示的に定義されているもの)はどのように呼び出させばよいでしょうか?
(2)2005のライブラリを6.0から呼び出すことは可能ですか?
また呼び出す方法は?
すいませんがご回答をお願いします。
お礼
ありがとうございました。解決しました。