【发布时间】:2009-03-23 18:47:01
【问题描述】:
我可以找到使用 DLLImport 从 C# 调用 C++ 代码的所有示例来回传递整数。我可以让这些例子工作得很好。我需要调用的方法将两个结构体作为其导入参数,我不太清楚如何使其工作。
这是我必须处理的:
我拥有 C++ 代码,因此我可以对其进行任何我需要的更改/添加。
第三方应用程序将在启动时加载我的 DLL,并期望 DLLExport 以某种方式定义,因此我无法真正更改导出的方法签名。
我正在构建的 C# 应用程序将用作包装器,因此我可以将此 C++ 部分集成到我们的其他一些应用程序中,这些应用程序都是用 C# 编写的。
我需要调用的 C++ 方法签名是这样的
DllExport int Calculate (const MathInputStuctType *input,
MathOutputStructType *output, void **formulaStorage)
而MathInputStructType定义如下
typedef struct MathInputStuctTypeS {
int _setData;
double _data[(int) FieldSize];
int _setTdData;
} MathInputStuctType;
【问题讨论】: