我对 C# 完全陌生。我正在尝试运行使用 C++ 编写的 DLL 的 C# 代码。DLL文件是,
#include "pch.h"
#include <vector>
#include <iostream>
extern "C" __declspec(dllexport) void __cdecl analysis(double* values, int len)
{
using namespace std;
vector<int> ind(values, values + len);
int n = ind.size();
for (int i = 0; i < n; i++)
{
cout << ind[i] << endl;
}
}
和 C# 代码,
using System.Runtime.InteropServices;
using System.Collections.Generic;
namespace Test_run
{
class Program
{
[DllImport("Test.dll")]
public static extern void analysis([MarshalAs(UnmanagedType.LPArray)] double[] values, int len);
static void Main(string[] args)
{
List<double> lst = new List<double>();
lst.Add(1.2);
lst.Add(2.3);
lst.Add(3.4);
analysis(lst.ToArray(), lst.Count);
}
}
}
这两个文件单独编译。但是当我运行该程序时,它会引发异常“无法加载 DLL“Test.dll”或其依赖项之一:找不到指定的模块。(0x8007007E)”。它们都在同一个解决方案中,并且 C# 项目添加了 DLL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句