gpt4 book ai didi

c# - 在 C# 项目中使用 C++ DLL

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:15:17 24 4
gpt4 key购买 nike

我有一个 C++ dll,它必须集成到 C# 项目中。

我想我找到了正确的方法,但是调用 dll 会给我这个错误:System.BadImageFormatException:尝试加载格式不正确的程序。 (HRESULT 异常:0x8007000B)

这是dll中的函数:

extern long FAR PASCAL convert (LPSTR filename);

这是我在 C# 中使用的代码

namespace Test{
public partial class Form1 : Form
{
[DllImport("convert.dll", SetLastError = true)]
static extern Int32 convert([MarshalAs(UnmanagedType.LPStr)] string filename);

private void button1_Click(object sender, EventArgs e)
{
// generate textfile
string filename = "testfile.txt";

StreamWriter sw = new StreamWriter(filename);
sw.WriteLine("line1");
sw.WriteLine("line2");
sw.Close();

// add checksum
Int32 ret = 0;
try
{
ret = convert(filename);

Console.WriteLine("Result of DLL: {0}", ret.ToString());
}
catch (Exception ex)
{
lbl.Text = ex.ToString();
}
}
}}

关于如何进行此操作的任何想法?

非常感谢,弗兰克

最佳答案

尝试在从 DLL 导出的函数中使用 __stdcall(或 WINAPIAPIENTRY)。

关于c# - 在 C# 项目中使用 C++ DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2995513/

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