我想用 Delphi 编写包含函数的 Dll,然后在 Excel VBA 调用。试了很多次都无法返回正确的结果。
具体如下:
Delphi7 中的测试源码:
//********************************************************************************************
library XlsExt;
{比较两数的大小,并返回较大者}
uses
SysUtils,
Classes;
{$R *.res}
var
SaveExit:Pointer;
procedure LibExit; //为了不使退出Excel时出现异常
begin
ExitProc:=SaveExit; //恢复退出过程链表
end;
function MyMax(X,Y:SmallInt):SmallInt;stdcall; //定义函数
begin
try
if X>Y then MyMax:=X else MyMax:=Y;
except
MyMax:=333; //测试异常处理,可是好像没有看到这个结果。
end;
end;
exports //函数输出
MyMax;
begin
SaveExit:=ExitProc; //保存退出过程链表
ExitProc:=@LibExit; //设置LibExit为退出过程
相关问答:
我在模块里自定义了一个函数:stradd()
可是在adoquery1.sql.add('select stradd(author) from book');
时提示stradd未定义...
这个问题有什么办法可以解决的吗? 非常感激!
(在A ......
向各位高手求助。
我用delphi2009编写了一个管理系统,使用的是access数据库。现在想通过多人一起录入数据后,将数据导出,导出的数据库包含多个相同的表。再将导出的数据依次导入到同一个数据库的相同表中,导入 ......
'Select * into '+TempTableName+' from OpenDataSource(''Microsoft.JET.OLEDB.4.0'',''Data Source='
+ExcelFilePath+';Mode=Read;Extended Properties=Ex ......
[size=18px]var s,n:integer;
begin
write('输入变长的条数n');
readln(n);
[color=#FF0000]s:=n*(n-1)*(n-2)div 6; //本行替换为s:=n*(n-1)*(n-2)/ ......
project project3.exe raised exception class ERemotableException with message 'access violation at address 004037B in module'project2.exe'.read of address 00000003'.process stopped.use ......