tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: VB6.0のExeとVC++6.0のDLLの文字列
投稿日: 2008/05/20(Tue) 16:56
投稿者VB
> 今回の場合は、[ByRef x As ユーザー定義型] にして PInfo(0) を渡すか、
> あるいは、[ByVal x As Long] にして VarPtr(PInfo(0)) を渡してみてください。
前者の『[ByRef x As ユーザー定義型] にして PInfo(0) を渡す』
で実行してみたところ。
VB
・標準モジュール
Public Declare Function test Lib "test.dll" (ByRef PINFO As DLL) As Long
・フォーム
Dim PINFO(0) As DLL
PINFO(0).flg = "X"
と書き直しました。
ですが、VC++では『式を評価出来ません』という返答が・・・。

後者の『[ByVal x As Long] にして VarPtr(PInfo(0)) を渡す』
で実行してみたところ

VB
・標準モジュール
Public Declare Function test Lib "test.dll" (ByRef PINFO As DLL) As Long
・フォーム
Dim PINFO(0) As DLL
PINFO(0).flg = "X"
rtn = VarPtr(PINFO(0))
Text1.Text = rtn
と書き直しましたが、7桁の数値が返ってきてしまいました。
何がいけなかったのでしょう?(^^;

> > flg As String * 1
> > PINFO(0).sflg = "X"
> ん? メンバ名が異なっているような。
打ち間違えました(^^;
すみません。

> 最初の 1 は、SAFEARRAY 中の次元数を表す情報(unsigned short cDims)かな…。
おそらくそれです。。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。