teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コードの漏れを追記

2019/05/24 03:43

投稿

moredeep
moredeep

スコア1507

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::ST_DATATYPE^ Get(int i)
46
+ static DataManage::ST_DATATYPE_REF^ Get(int i)
28
47
  {
29
- return DataManage::ST_DATATYPE::CreateInstance(C_DATATYPE_LIST[i]);
48
+ return DataManage::ST_DATATYPE_REF::CreateInstance(C_DATATYPE_LIST[i]);
30
49
  }
31
50
  };
32
51