我知道这个问题有答案,但他没有帮助我。我看到了文章:链接和链接,但我有问题。我的代码:
C#:
[DllExport("ServerOfDataBases", CallingConvention = CallingConvention.StdCall)]
public static int ServerOfDataBases(
string server, string user, string password,
[MarshalAs(UnmanagedType.BStr)] out string strout)
{
string resultStr = String.Empty;
// ...
strout = resultStr;
return 0;
}
创新设置:
[Files]
Source: "GetDataBases.dll"; Flags: dontcopy
[Code]
function ServerOfDataBases(server, user, password: string; out strout: WideString): Integer;
external 'ServerOfDataBases@files:GetDataBases.dll stdcall';
我收到此错误
无法导入 dll:C:\Users...\AppData\Local\Temp\is-ECJ5V.tmp\GetDataBases.dll
谢谢你的任何想法。
如果我按照我的回答中的所有说明对我有用:
在 Inno 安装程序中调用 .NET DLL
所以我猜,你没有将 .NET/C# 项目的平台目标设置为x86。
有关从 DLL 返回字符串的详细信息,请参阅:
使用非托管导出到 Inno 安装程序脚本从 C# DLL 返回字符串