掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Cで作ったDLLから戻り値(文字列)の取得について (ID:92001)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
はじめまして、offと申します。 早速ですが、質問です。 Cで作ったDLLからログインしているユーザ名を取得するPGを作っているのですがうまくユーザ名が取れないのです。 Cのソースは、 TEST_API CHAR* __stdcall UserName(void){ char lpBuffer[256]; DWORD dwSize ; dwSize = sizeof(lpBuffer) ; memset( lpBuffer, '\0', dwSize ) ; GetUserName(lpBuffer, &dwSize ); return lpBuffer ; } VBのソースは、 Private Declare Function UserName Lib "TEST.dll" () As Long Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" ( ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long) Private Sub Command1_Click() Dim p As Long Dim b(256) As Byte Dim s As String p = UserName Call MoveMemory(b(0), ByVal p, 256) s = StrConv(b(), vbUnicode) s = Left$(s, InStr(s, vbNullChar) - 1) MsgBox "現在のユーザ:" & s & "です。" です。 UserName からはアドレスらしき数値が戻ってきてるのですが、 そのあとのMoveMemoryを呼んでもbには何も入らないのです。 どうすれば、Cからcharの文字列を VB側のString変数に渡せばよいのでしょうか? どうか、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.