DLL呼び出し – プログラミング – Home

通知
すべてクリア

[解決済] DLL呼び出し


ゴンタ
 ゴンタ
(@ゴンタ)
ゲスト
結合: 23年前
投稿: 23
Topic starter  

C#からのDLL呼び出し方法を質問します。

VBで以下のコ-ドでDLL呼出しを行なっています。
------------ VB --------------
Declare Function WM_pc Lib TESTVER.DLL (ByVal buf1 As String, ByVal block As
Integer, ByVal buf2 As String) As Integer

Dim buf1 As String, buf2 As String
Dim ret As Integer
ret = WM_pc(buf1, 15, buf2)
尚、buf2は、C#でいう所の、out buf2(DLL側より値をセットされて帰ってきます。)です。
(C言語の &buf2 です。)

以上の呼び出しをC#で実現したいので、以下の様にしましたが、うまく行きません。
------------ C# --------------
[DllImport(TESTVER.DLL, EntryPoint=WM_pc)]
public static extern int WM_pc(string buf1, int block, out string buf2);

以上でやってみましたがうまく行きません。
何か、他に必要な処理があるのでしょうか? 宜しく御願い致します。


引用未解決
トピックタグ
suzuka
 suzuka
(@suzuka)
ゲスト
結合: 22年前
投稿: 46
 

DllImport 使ったことありませんので
自信ありませんが一点だけ。

VB6.0 までは Integer は 16ビット値で、
C# の int は System.Int32 なので 32ビット値だと思いますが
そのへんはどうでしょうか。


返信引用
ゴンタ
 ゴンタ
(@ゴンタ)
ゲスト
結合: 23年前
投稿: 23
Topic starter  

suzukaさん、回答有難うございます。
引数型のミスで、NGでした。
int ---> short
string buf1 ---> char[] buf1
string buf2 ---> char[] buf2

以上の変更で、質問内容のDLL呼び出しはうまく行く様になりました。
有難うございました。

ただし、
out string buf2 ---> out char[] buf2
の箇所がうまく動作せず、検討途中です。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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