VBからDLL関数が呼び出せない – プログラミング – Home

VBからDLL関数が呼び出せない
 
通知
すべてクリア

[解決済] VBからDLL関数が呼び出せない


のま
 のま
(@のま)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

Visual Studio 2003 .NETを使って、(VBアプリ) + (Cで作ったWIN32 DLL) の簡単な
ツールソフトを作っています。
VBからDLLの関数をコールすると、
「'System.EntryPointNotFoundException' のハンドルされていない例外が
EvalApp1.exe で発生しました。
追加情報 : DLL EvalDLL.dll の LoadCSVData というエントリ ポイントが
見つかりません。」
というエラーになってしまいます。

DLL側:extern C __declspec(dllexport) int __stdcall LoadCSVData(char* name)
VB側 :Declare Function LoadCSVData Lib EvalDLL.dll Alias LoadCSVData
(ByRef lpBuffer As String) As Integer
LoadCSVData()

DEFファイル: LIBRARY EvalDLL
SECTIONS
; READ WRITE SHARED
EXPORTS
LoadCSVData@4

のようにして、VBでDEFファイルを取り込んでコンパイルしています。
数年前に VC++6.0 VB6.0で同様の事をした時はうまく動作したのですが、
長らくVBを触っていなかったので、どこか間違いを犯してしまっているのでしょうか?

あと気になっているのが、DLLのエントリーをdllをダンプして確認しましたら、
@4から始まっています。@4から始まるというのは、DLLがうまくできていない
ということなのでしょうか?

それから、DEFファイルをVB プロジェクトに取り込むのは、「既存の追加」で
おこなってます。ソースやフォームと同じ所に入っていますが、これでよかったの
かな、、、間違いありませんでしょうか?

なにかお気づきになりましたら、アドバイスをお願いいたします。
簡単な原因なのかも知れませんが、色々と調べても解決しません。
助けてください。よろしくお願いします。


引用未解決
トピックタグ
のま
 のま
(@のま)
ゲスト
結合: 17年前
投稿: 2
Topic starter  

長時間なやんだあげく、質問を投稿させていただいたとたんに自己解決しました。

Declare Function ----> Declare Auto Function

と変更したらうまく動作するようになりました。
奥深い理由はよく解りませんが、まずは、目先の問題はクリアされました。
DEFファイルも関係ないようです。

お邪魔してしまったようで申し訳ありません。

もし、よろしければ、上記の問題について奥深く解説していただけたらうれしいです。
そこまで無理いうと怒られるかもしれませんが。

どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました