我正在使用特定硬件并从h / w供应商处获得.lib和.dll。需要使用C#中的本机dll函数,所以我试图在它们之间使用C ++ / CLI概念。
我的本机代码构建正常并生成.lib和.dll文件,我将此文件与C ++ / CLI DLL一起使用,它也构建良好并提供.dll文件。在C#中使用此文件时,我收到的错误如下: -
Unhandled Exception: System.IO.FileLoadException: A procedure imported by 'CLI_DLL.dll' could not be loaded.
at C_sharp_Code.Program.Main(String[] args)
重要的是,当我尝试从CLR控制台应用程序访问本机dll时,它工作正常但是当我从CLR DLL调用本机函数时,dll正在构建正常但在下面给出以下错误在C#控制台应用程序中使用它。
C ++ / CLI .h文件
#pragma once
using namespace System;
extern "C" _declspec(dllimport) bool N_Enabale_Port();
namespace CLI_DLL {
public ref class Class1
{
// TODO: Add your methods for this class here.
public:
bool M_Enabale_Port();
};
}
C ++ / CLI CPP
#include "stdafx.h"
#include "CLI_DLL.h"
bool CLI_DLL::Class1::M_Enabale_Port()
{
bool temp = N_Enabale_Port();
return temp;
}
C#代码
using CLI_DLL;
namespace C_sharp_Code
{
class Program
{
static void Main(string[] args)
{
try
{
Class1 obj = new Class1();
bool x = obj.M_Enabale_Port();
Console.WriteLine(x);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
}
}
我遗失某些东西的任何建议......