从托管代码调用本机函数

布兹瓦

我有一个托管的C ++ / CLI项目,该项目必须使用一些本机代码。本机头文件的简化版本为:

struct structA
{
   // Some variables...
};
struct structB
{
   // Some similar variables...
   void convertTo(structA& dest);
};

此标头包含在托管代码中。托管代码具有:

structA sA;
structB sB;
// Load data into sB...
sB.convertTo(sA);

我正在使用Visual Studio 2008并使用编译托管代码/clr当然,由于隐式调用约定不同,因此会生成链接器错误(LNK2028)。但是,我一直无法使用extern "C"声明来解决这个问题(或者我可能错误地使用了它们)。我尝试了针对类似问题的几种解决方案,但均无济于事。

如何从托管代码中正确调用非托管函数?这里需要什么声明或包装?

布兹瓦

事实证明,这不是一个托管非托管冲突问题。我只是忘了声明使用的函数为导出函数,即

__declspec(dllexport) void convertTo(structA& dest);

对于未引用的函数,第二个更常见的链接器错误(LNK2019)是我应该注意的地方。奇怪的是,还抛出了托管-非托管冲突错误(LNK2028),因为这是一个更专门的错误(这也使我偏离了轨道)。据我所知,该错误仅应在我使用的情况下适用/clr:pure,正如注释中所建议的那样。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从本机代码调用 JavaScript 函数

来自分类Dev

调用本机代码的多线程托管应用程序

来自分类Dev

调用本机代码的多线程托管应用程序

来自分类Dev

从WKWebView中的本机代码调用JavaScript函数

来自分类Dev

从android本机代码调用javascript函数

来自分类Dev

调用本机iOS代码

来自分类Dev

Android从本机代码调用JS

来自分类Dev

互操作-是从托管方式调用本机,还是从托管方式调用本机

来自分类Dev

当托管bean构造函数发送404错误代码时,JSF调用方法

来自分类Dev

混合代码(本机,托管):如何(技术上)互操作?

来自分类Dev

将图像结构从本机代码导出到托管

来自分类Dev

将图像结构从本机代码导出到托管

来自分类Dev

用指针调用非托管代码

来自分类Dev

从C#调用非托管代码

来自分类Dev

使用jni从本机代码调用Java方法

来自分类Dev

使用jni从本机代码调用Java方法

来自分类Dev

调用本机(DllImport)函数时出现StackOverflowException

来自分类Dev

ReactNative-无法从本机模块调用函数

来自分类Dev

普通的Cordova插件未调用本机函数

来自分类Dev

Laravel Framework中的本机php调用函数

来自分类Dev

ReactNative-无法从本机模块调用函数

来自分类Dev

如果禁用了本机代码调试,则在调用extern函数时,vshost32-clr2.exe将挂起

来自分类Dev

将托管引用(this)传递给非托管代码并调用托管回调

来自分类Dev

R源代码。调用函数

来自分类常见问题

从C ++代码调用C函数

来自分类Dev

从托管代码中调用Folder.PropertyAccessor是否安全?

来自分类Dev

从 c# 调用非托管代码。使用 IntPtr 获取数据

来自分类Dev

托管代码与非托管代码

来自分类Dev

调用本机代码时,JVM是否会暂停?

Related 相关文章

热门标签

归档