[英]Passing part structure between C++ and C#
在C ++中我有這樣的結構:
struct Structure
{
std::vector<int> vect;
int i;
double d;
};
但是在C#中我不需要這個載體。 是否可以將此結構的一部分傳遞給C#?
我嘗試做這樣的事情:
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct Structure
{
public int i;
public double d;
}
但它不起作用。
你不能隨意砍掉struct
頂部或中間的部分並期望它起作用,因為你傳遞的成員的偏移量會有所不同。
----------- ------------
| C++ view | C# view |
----------- ------------
| vect | i |
----------- ------------
| i | d |
----------- ------------
| d |
----------
但是,如果將向量移動到struct
的底部,您的技巧可能會起作用:您應該能夠傳遞單個struct
,但不能傳遞它們的數組。
----------- ------------
| C++ view | C# view |
----------- ------------
| i | i |
----------- ------------
| d | d |
----------- ------------
| vect |
----------
如果將Structure
用作更大struct
的成員,它也將無效。
這不起作用,因為.Net結構中缺少vect
字段。 嘗試向.Net結構添加一個字段,其大小與vect
: sizeof(vect)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.