当前位置:  开发笔记 > 编程语言 > 正文

如何将DLLImport与结构一起用作C#中的参数?

如何解决《如何将DLLImport与结构一起用作C#中的参数?》经验,为你挑选了1个好方法。

我可以使用DLLImport从C#调用C++代码的所有示例都来回传递.我可以让这些例子正常工作.我需要调用的方法将两个结构作为其导入参数,我不清楚如何使其工作.

这是我必须要做的事情:

我拥有C++代码,因此我可以对其进行任何更改/添加.

第三方应用程序将在启动时加载我的DLL并期望以某种方式定义DLLExport,因此我无法真正更改导出的方法签名.

我正在构建的C#app将用作包装器,因此我可以将这个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;

Jim Mischel.. 10

MSDN主题Passing Structures很好地介绍了将结构传递给非托管代码.您还需要查看使用平台调用的Marshaling数据和Marshaling类型数组.



1> Jim Mischel..:

MSDN主题Passing Structures很好地介绍了将结构传递给非托管代码.您还需要查看使用平台调用的Marshaling数据和Marshaling类型数组.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有