- PR -

エントリxxxxがDLLファイルyyyy内に見つかりません。

1
投稿者投稿内容
ちょろねずみ
会議室デビュー日: 2006/12/20
投稿数: 7
お住まい・勤務地: 尼崎
投稿日時: 2006-12-26 11:43
Access 2000 VBA より VC++ 6.0 で作成したDLL内の関数を呼ぶと、
「実行時エラー'453':
エントリxxxxがDLLファイルyyyy内に見つかりません。」が表示されます。
ここで、xxxxは関数名でyyyyはDLLファイル名です。
xxxxの例は、GetNezumiです。

作成DLLの種類: MFCレギュラーDLL

このDLLファイル内では、VBAより呼び出す関数を定義しています。
また、この関数内で他のDLLに存在しMFCを使用している関数を呼んで
います。呼出関係は、こんな感じです。

VBA → MFCレギュラーDLL(VBAより呼び出す関数) → MFC拡張DLL

→は、呼出の意味です。

Dependency Walker でのエクスポート情報例:

VCで作成したDLLをDependency Walkerで開くと、下記のように
装飾された関数名と装飾なしの関数名が混在している。

Ordinal Function Entry Point
1 ??0aaaa@QAE@XZ 0x00001041
2 ??1aaaa@UAE@XZ 0x0000100A
3 ??4bbbb@QAEAAV0@ABV0@@Z 0x00001055
4 ??4cccc@QAEAAV0@ABV0@@Z 0x00001032
5 ??_7aaaa@@6B@ 0x00017048
6 GetNezumi 0x00001037

これをみると、VBAより呼び出すGetNezumi関数のエントリポイント
は在るので、正常に呼び出せると思ったのですが???
装飾された関数名と装飾なしの関数名が混在するとダメなの
でしょうか?
また、GetNezumi関数の序数は6なので、VBAより序数=6で呼び出してみると
「ハンドルされていない例外はMSACCESS.EXE(VB6E.DLL)にあります:
0xC0000005: Access Violation。」が表示されダメです。
ちなみに、このGetNezumi関数は、VCで作ったテストexeより
正常に呼び出せます。

誰か解る方、教えて下さい。
_________________
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-12-26 11:49
コレに当てはまったりしませんか?
ちょろねずみ
会議室デビュー日: 2006/12/20
投稿数: 7
お住まい・勤務地: 尼崎
投稿日時: 2006-12-26 11:59
ひろれいさん!激早返答ありがとうございます。

引用:

ひろれいさんの書き込み (2006-12-26 11:49) より:
コレに当てはまったりしませんか?



残念ながら当てはまっておりません。VBAより呼び出す関数の引数の型は、
c言語の型です。intやLPVOIDを使っております。

_________________
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-12-26 15:20
引用:

ちょろねずみさんの書き込み (2006-12-26 11:43) より:
装飾された関数名と装飾なしの関数名が混在するとダメなの
でしょうか?


そんな事は無いはずです。C言語側の定義と、VBA側の定義をよ〜く見比べてください。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-12-26 15:20
引用:

ちょろねずみさんの書き込み (2006-12-26 11:43) より:
装飾された関数名と装飾なしの関数名が混在するとダメなの
でしょうか?


そんな事は無いはずです。C言語側の定義と、VBA側の定義をよ〜く見比べてください。
Blue
大ベテラン
会議室デビュー日: 2005/09/12
投稿数: 230
お住まい・勤務地: 知っている人は知っている
投稿日時: 2006-12-26 15:31
一応こちらにもはってリンク付けておきましょう。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200612/06120049.txt
ちょろねずみ
会議室デビュー日: 2006/12/20
投稿数: 7
お住まい・勤務地: 尼崎
投稿日時: 2006-12-26 15:49
引用:

Blueさんの書き込み (2006-12-26 15:31) より:
一応こちらにもはってリンク付けておきましょう。
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200612/06120049.txt


マルチしてます。どうもすいません。今後は、上記を参照願います。

_________________
1

スキルアップ/キャリアアップ(JOB@IT)