您的位置:首页 > 其它

动态加载dll

2012-08-16 15:58 309 查看
type
TPrintProc = function(DataPrint: integer; PrintFile: WideString; PrintMode: Integer = 1): Integer; safecall; //根据动态库中的函数来自定义类型

////////////////////////////////////////////////////////////函数中///////////////////////////////////////////////////////////////////////////////////////////////////

procedure TTechSingleGridForm.PrintDataSet(PrintMode: Integer);
var
PrintProc: TPrintProc;
PrintHand: HMODULE;
begin
PrintHand := LoadLibrary('com_PrintReport.dll');
try
if PrintHand > 0 then
begin
@PrintProc := GetProcAddress(PrintHand, 'PrintByDataSet');
if Assigned(PrintProc) then
begin
try
PrintProc(Integer(ClientDataSet), Context.PageCode + '.rtm', PrintMode);
except
on E: Exception do
Case PrintMode of
0 : ComCommon.Prompt('打印预览失败,可能是如下的原因:' + #10#13 + E.Message);
1 : ComCommon.Prompt('读取打印格式失败,可能是如下的原因:' + #10#13 + E.Message);
2 : ComCommon.Prompt('打印失败,可能是如下的原因:' + #10#13 + E.Message);
end;
end;
end;
end
else ComCommon.Prompt('装载com_PrintReport.dll失败或缺少该动态库!');
finally
FreeLibrary(PrintHand);
end;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: