掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Marshal (ID:146098)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Declare 構文と DllImport 構文が混じっているのが気になりますが、それはさておき。 > <DllImport("Thdll2Vb.dll")> _ > Private Shared Function Vdbf_open(ByRef s As String, ByRef d As TThLog) As Integer > End Function この部分があやしいです。この部分、本当に正しい宣言になっていますか? String 型を DLL に ByRef で渡すのは、かなり特殊な状況に限られますよ。 Thdll2Vb.dll というのは、Windows や VB に標準で用意された物ではありませんし、 質問文には、VB2008 との比較対象となる VB6 当時のコードが無いので、 答えにくいのですが、DLL 名で検索してみると、下記の Th505API.lzh がヒットしました。 http://hamlog.no.coocan.jp/mou/ 今回問題にしているのが、この DLL の事であるのかどうかは分かりませんが、 これを見ると、Vdbf_open というのは、 > int WINAPI __export Vdbf_open(const char *fname, TThLog *th) であり、かつ、VB6 から利用する場合には > Declare Function Vdbf_open Lib "Thdll2Vb.dll" (ByVal s As String, d As TThLog) As Long であると記載があります。 という事は、VB.NET からの利用は Private Declare Function Vdbf_open Lib "Thdll2Vb" (ByVal s As String, ByRef d As TThLog) As Integer もしくは、 Private Declare Ansi Function Vdbf_open Lib "Thdll2Vb" (ByVal s As String, ByRef d As TThLog) As Integer になるかと思います。(未確認)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.