プロが教える店舗&オフィスのセキュリティ対策術

以前にあった「Cで作成したDLL関数をVBから呼び 引数渡し方法」を試したのですがVB側でデータが受け取れません。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=711327

C側での値設定がわるいのでしょうか?

VB側
Public Declare Function testAP Lib "C:\bin\test.dll" (ByVal lpKeyData As String) As Long
---------------------------------------------------------------------------
Dim lngRc As Long
Dim keydata As String * 128

keydata = String$(128, Chr(0) & Chr(0))
lngRc = testAP(keydata)

VC側
__declspec(dllexport) long __stdcall testAP(char *lpdata){
→C側でlpdataに値を設定する
lpdata="ABCDEF";
}

A 回答 (1件)

VC側のlpdataの設定が違っています。


ポインタの代入ではなく、文字列のコピーにしてください。

VC側
__declspec(dllexport) long __stdcall testAP(char *lpdata){
→C側でlpdataに値を設定する
strcpy(lpdata,"ABCDEF");
}
    • good
    • 0
この回答へのお礼

ありがとうございました。
おかげさまで解決できました。

お礼日時:2005/10/10 18:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!