gpt4 book ai didi

c# - 在c#代码中调用C++ dll

转载 作者:行者123 更新时间:2023-11-30 02:25:44 26 4
gpt4 key购买 nike

我正在尝试在 C# 代码中调用 C++ dll。我的头文件 -

#define MLTtest __declspec(dllexport)
class MLTtest testBuilder
{
public:
testBuilder(void);
~testBuilder(void);


int testfunc (int iNumber);
};

我的.CPP 类

int testBuilder::testfunc (int iNumber)
{

return iNumber*2 ;
}

这是我使用该 dll 的 C# 代码。

class Program
{

[DllImport(@"C:\Sources\Operations\Online.Dev\BIN\Debug\Mlt1090d64.dll", CallingConvention = CallingConvention.Cdecl, EntryPoint = "testfunc")]
public static extern int testfunc(int n);

static void Main(string[] args)
{
try
{
int x = testfunc (50);
}
catch (Exception ex)
{
}
}
}

但我不断收到此异常异常:

Unable to find an entry point named 'testfunc ' in DLL 'C:\Sources\Operations\Online.Dev\BIN\Debug\Mlt1090d64.dll'.

最佳答案

问题是您尝试调用类成员方法。

在 .cpp 文件中放置流动函数(不是类成员)

extern "C" int __declspec(dllexport) testfunc(int iNumber)
{
return iNumber*2;
}

并在 .cs 中更新

[DllImport(@"C:\Sources\Operations\Online.Dev\BIN\Debug\Mlt1090d64.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int testfunc(int n);

关于c# - 在c#代码中调用C++ dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43797757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com