我想从Inno安装脚本中调用.NET DLL(用C#编码)中的函数.
我有:
在项目属性中标记了Register for COM interop选项,
更改了AssemblyInfo.cs文件中的ComVisible设置,
将这些行添加到ISS脚本中:
[文件]
来源:c:\ temp\1\MyDLL.dll; 标志:dontcopy
[码]
function MyFunction():string;
外部'MyFunction @文件:MyDLL.dll stdcall setuponly';
但我仍然收到以下错误:
运行时错误(在-1:0):
无法导入DLL:C:\ DOCUME~1\foo\LOCALS~1\Temp\is-LRL3E.tmp\MyDLL.dll.
我究竟做错了什么?
Intenta de esta manera(试试这种方式):
Var obj: Variant va: MyVariableType; Begin //Starting ExtractTemporaryFile('MyDll.dll'); RegisterServer(False, ExpandConstant('{tmp}\MyDll.dll'), False); obj := CreateOleObject('MyDll.MyClass'); //Using va := obj.MyFunction(); //Finishing UnregisterServer(False, ExpandConstant('{tmp}\MyDll.dll'), False); DeleteFile('{tmp}\MyDll.dll'); End;
Suerte(祝你好运)