chatgpt 告诉我的
// 声明外部的Lee.dll并定义GetFileList方法
[DllImport("Lee.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
public static extern string GetFileList();
需要通过 DllImport 引用该 DLL,并正确映射方法签名。先准备 DLL 文件确保 Lee.dll 文件位于项目的运行路径中,或将其路径添加到系统 PATH 环境变量中。
C# 代码
using System;
using System.Runtime.InteropServices;
class Program
{
// 引用DLL中的方法
[DllImport("Lee.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
public static extern string GetFileList();
static void Main(string[] args)
{
try
{
// 调用方法并输出结果
string fileList = GetFileList();
Console.WriteLine("文件列表: " + fileList);
}
catch (Exception ex)
{
Console.WriteLine("调用 DLL 失败: " + ex.Message);
}
}
}
注意事项,DllImport 参数:CharSet.Unicode:确保字符串使用 WideString(即 UTF-16 编码)。
CallingConvention.StdCall:匹配 Delphi 中的 stdcall 调用约定。确保 DLL 文件路径正确,否则会抛出 DllNotFoundException。
32位/64位兼容性:确保C# 程序和 DLL 都是相同的位数(32位或64位)。如果你的 DLL 是 32 位,要将项目的目标平台设置为 x86。