c# - 使用 DLL 时遇到问题
问题描述
我对 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。
解决方案
推荐阅读
- angular - 在Angular的不同列中呈现JSON对象?
- azure - Azure AD 同步 - 不从 AD 更新使用位置
- javascript - 在选择 Dropwdown 角度中显示嵌套的 json
- php - mysql 按表中最后一个值排序,用逗号分隔
- html - 风俗
- 长文本时错位
- c# - 如何为自定义 JsonConverter 设置 FloatParseHandling.Decimal?
- java - 如何使用詹金斯触发端点(控制器)
- ansible - 无法创建新仪表板:404 messageDashboard not found
- django - Django UNIQUE constraint failed: core_organization.name
- javascript - 在vue中为radio和checkbox生成动态id属性