【发布时间】:2016-08-15 08:59:22
【问题描述】:
我使用 SIMULINK 的嵌入式编码器创建了一个 .dll 文件。 (系统目标文件设置为:ert_shrlib.tlc) 成功构建到Model_win64.dll。现在我想从 Visual Studio 中引用它。
我第一次尝试使用“添加引用”工具,但出现以下错误:A reference to 'file path\Model_win64.dll'
然后我在网上搜索了一个解决方案,发现这个错误是由 .dll 文件是本机 .dll 引起的,所以我应该使用 DllImportAttribute Class https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx
所以我目前的代码是
using System;
using System.Runtime.InteropServices;
namespace GUI_Interface
{
class Main
{
[DllImport("Modbot_Model_win64.dll", CharSet = CharSet.Unicode)]
public static extern int[] MPC(double x, double y, double theta, double Vx, double Vy, double Vtheta);
public static BackgroundWorker test()
{
ints = MPC(0, 0, 0, 0, 0, 0);
}
}
我得到运行时错误:无法封送“返回值”:无效的托管/非托管类型组合。我尝试阅读托管/非托管类型,但我无法包装我的围绕它来解决这个问题。任何关于托管/非托管的建议解决方案或信息将不胜感激。
【问题讨论】:
-
您可以尝试将您的 exe 更改为 x64 吗?
标签: c# c++ .net visual-studio-2012 dll