VB.netからdll(c++)へ構造体のデータを渡しています
下記のようにしたのですが、変数はできましたが配列はできませんでした。
'VB側
public class A
Public Structure data
Public number As single
Public arg() As single
End Structure
Public struct As New data
Public Declare Function Draw Lib "C:(略)\simulation.dll" (ByRef struct As data) As Boolean
'タイマーで一定時間たてば送る。
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
struct.number=10
Redim struct.arg(5)
struct.arg(0)=10
struct.arg(1)=10
struct.arg(2)=10
Call DrawSpace(struct)
end sub
end class
//C++側(ヘッダファイル)
#ifdef cplusplus #define EXPORT extern "C" declspec(dllexport)
#else
#define EXPORT __declspec(dllexport)
#endif
typedef struct {
float number;
float arg[5];
} data;
namespace Tips_Win32DLL
{
bool __stdcall Draw(AAA_C* _data);
}
//C++側(メインファイル)
namespace Tips_Win32DLL
{
bool __stdcall DrawSpace(AAA_C* _data)
{
float a = data->number; //データが問題なく入っていた
float b = data->arg[0]; //0になっている
return true;
}
}
float b = data->arg[0];のところが値が入っていません。わかるかた助けてください。
ちなみに
p = _data->arg;
float b = *(p+1);
とかやりましたがだめでした。お願いします。
回答2件
あなたの回答
tips
プレビュー