回答編集履歴
1
コードの漏れを追記
answer
CHANGED
@@ -21,12 +21,31 @@
|
|
21
21
|
|
22
22
|
他の手段としては、C++のデータのラッパークラスを用意するとか
|
23
23
|
``` C++
|
24
|
+
namespace DataManage
|
25
|
+
{
|
26
|
+
ref struct ST_DATATYPE_REF { // 新しく追加する
|
27
|
+
public:
|
28
|
+
ST_DATATYPE_REF(E_DATATYPE dataType, CString str)
|
29
|
+
{
|
30
|
+
// 変換処理は割愛
|
31
|
+
}
|
32
|
+
|
33
|
+
// マーシャリング代わり
|
34
|
+
static ST_DATATYPE_REF^ CreateInstance(const ST_DATATYPE& src)
|
35
|
+
{
|
36
|
+
return gcnew ST_DATATYPE_REF(src.eDataType, src.sDataName);
|
37
|
+
}
|
38
|
+
E_DATATYPE eDataType;
|
39
|
+
System::String^ sDataName;
|
40
|
+
};
|
41
|
+
|
42
|
+
}
|
24
43
|
ref class C_DATATYPE_LIST_WRAPPER
|
25
44
|
{
|
26
45
|
public:
|
27
|
-
static DataManage::
|
46
|
+
static DataManage::ST_DATATYPE_REF^ Get(int i)
|
28
47
|
{
|
29
|
-
return DataManage::
|
48
|
+
return DataManage::ST_DATATYPE_REF::CreateInstance(C_DATATYPE_LIST[i]);
|
30
49
|
}
|
31
50
|
};
|
32
51
|
|