再帮我看看包的问题! 老提示访问内存出错!

kl2000 2004-05-05 01:36:50
unit CommInterface;
//以下是用来测试的代码,可能写得有点乱,望谅解
//这是我定义的接口
interface

uses
Windows, Messages, SysUtils,Classes,ADODB;
type
IMYCommInterFace = interface(IDispatch)
['{768A344C-0331-41A4-87F3-8C2676A982A2}']
function GetAdoCnn: TADOConnection; stdcall;
function GetAdoQuery: TADOQuery; stdcall;
function ExcuteCommand(sSql: String): Boolean; stdcall;
end;
implementation
end.
//以下是接口的实现
unit OperationData;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,ADODB,CommInterface;

type
TMYGolbData = class(TComponent,IMYCommInterFace)
private
FAdoCnn: TADOConnection;
FAdoQuery: TADOQuery;
public
function GetAdoCnn: TADOConnection; stdcall;
function GetAdoQuery: TADOQuery; stdcall;
function ExcuteCommand(sSQl: String): Boolean; stdcall;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;

implementation

uses Math, StrUtils, DB;
{ TGolbData }

constructor TMYGolbData.Create(AOwner: TComponent);
begin
inherited;
FAdoCnn := TADOConnection.Create(nil);
FAdoQuery := TADOQuery.Create(nil);
end;


destructor TMYGolbData.Destroy;
begin
FreeAndNil(FAdoQuery);
FreeAndNil(FAdoCnn);
inherited;
end;

function TMYGolbData.ExcuteCommand(sSql: String): Boolean;
begin
FAdoQuery.Connection := GetAdoCnn;
with FAdoQuery do
begin
Close;
SQL.Text := sSQl;
Open;
end;
end;

function TMYGolbData.GetAdoCnn: TADOConnection;
begin
Result := FAdoCnn;
end;

function TMYGolbData.GetAdoQuery: TADOQuery;
begin
Result := FAdoQuery;
end;

initialization
RegisterClass(TMYGolbData);

finalization
UnRegisterClass(TMYGolbData);

end.
//下面则是加载包和调用接口
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, StdCtrls, Buttons,OperationData, ADODB,
CommInterface;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
DataSource1: TDataSource;
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
DataOp: TMYGolbData;
FICommInterFace: IMYCommInterFace;
HPbl:THandle;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

HPbl := LoadPackage('PackOperationData.bpl');
if HPbl1 <> 0 then
DataOp := TMYGolbData(TComponentClass(FindClass('TMYGolbData'))).Create(nil);

FICommInterFace := DataOp as IMYCommInterFace ;
FICommInterFace.GetAdoCnn.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;' +
'Persist Security Info=False;Initial Catalog=TEST;Data Source=KK2000';
FICommInterFace.GetAdoCnn.Open;

DataSource1.DataSet := FICommInterFace.GetAdoQuery;
FICommInterFace.ExcuteCommand('select * from Node')

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataOp.Free;
UnloadPackage(HPbl1);
end;

end.
...全文
115 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kl2000 2004-05-11
  • 打赏
  • 举报
回复
UP !!!
kl2000 2004-05-10
  • 打赏
  • 举报
回复
UP! 我顶得好累啊!
kl2000 2004-05-10
  • 打赏
  • 举报
回复
UP !
maskmaxmax 2004-05-08
  • 打赏
  • 举报
回复
再up
kl2000 2004-05-08
  • 打赏
  • 举报
回复
再 UP!
newfang 2004-05-08
  • 打赏
  • 举报
回复
up
kl2000 2004-05-08
  • 打赏
  • 举报
回复
不管怎样都好! 帮忙 UP 一下!
viaboy 2004-05-07
  • 打赏
  • 举报
回复
你调用的包是用DELPHI写的吗?你写的接口中的方法和变量是不是和包里的一样。
zhlwyy 2004-05-07
  • 打赏
  • 举报
回复
学习!
kl2000 2004-05-07
  • 打赏
  • 举报
回复
再顶!
kl2000 2004-05-07
  • 打赏
  • 举报
回复
大伙们明天应该上班了吧! UP!
kl2000 2004-05-07
  • 打赏
  • 举报
回复
楼上的大哥哥: 你没有看我贴出来的代码吗??
kl2000 2004-05-06
  • 打赏
  • 举报
回复
UP!
qizhanfeng 2004-05-06
  • 打赏
  • 举报
回复
学习
up
kl2000 2004-05-05
  • 打赏
  • 举报
回复
呵!·忘记说了.
接口是定义在包:PackInterface.bpl
接口的实现定义在包: PackOperationData.bpl
调用包是Exe.

OK! 等待你的回答!
内容概要:本文介绍了一种基于多目标粒子群算法(MOPSO)的微电网优化调度模型,综合考虑风能、光伏、储能系统、柴油发电机、燃气轮机以及与主电网之间的能量交互等多种分布式能源的协同运行。通过构建以运行成本最小化、碳排放最低化和系统可靠性最优化为目标的多目标优化模型,利用Matlab平台实现MOPSO算法求解,完成对微电网在不同运行场景下的能量管理与调度方案优化。该模型能够有效平衡经济性与环保性之间的关系,适用于含多类型分布式电源的复杂微电网系统,具有较强的工程应用价值和科研参考意义; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及工程技术人员,尤其适合从事微电网、智能电网、综合能源系统、可再生能源集成与优化调度等领域研究的专业人士; 使用场景及目标:①用于多能源耦合微电网系统的协同优化调度研究;②支持多目标智能优化算法在能源系统中的建模与求解实践,助用户掌握MOPSO在实际工程问题中的应用方法;③为学术论文复现、毕业设计、科研项目开发提供完整的代码实例与技术支撑; 阅读建议:建议读者结合Matlab代码与理论文档,深入理解目标函数构建、约束条件处理及Pareto最优解集生成机制,重点关注算法参数设置、多目标权衡分析与结果可视化,并可通过调整能源配置或引入新约束进行二次开发与创新研究。

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧