在dll里有var
Connection: tadoconnection;
begin
Connection := tadoconnection.Create(self);//编译不了
Connection := tadoconnection.Create(nil);//可以通过,
end;但如果在DLL里用
Connection := tadoconnection.Create(nil);//(注:此句不放在dll时,调用函数没有问题)
调用DLL函数时,况提示出错
-----
exception econverterror in module ****.dll at 0001d034
-----Q:
1,在用create对象时self与nil的作用是什么?
2,如果我想在DLL里创建tadoconnection,怎办?
3,上面的出错提示是说什么啊?
Connection: tadoconnection;
begin
Connection := tadoconnection.Create(self);//编译不了
Connection := tadoconnection.Create(nil);//可以通过,
end;但如果在DLL里用
Connection := tadoconnection.Create(nil);//(注:此句不放在dll时,调用函数没有问题)
调用DLL函数时,况提示出错
-----
exception econverterror in module ****.dll at 0001d034
-----Q:
1,在用create对象时self与nil的作用是什么?
2,如果我想在DLL里创建tadoconnection,怎办?
3,上面的出错提示是说什么啊?
带包运行project-option-package-build with runtimes ..选中
内存访问错误
1,
"不在对象内部就不能用self变量"
为什么在dll里就是"不在对象内部"啊?
2,
"project-option-package-build with runtimes ..选中"
运行不了程序,提示找不到动态链接库(一个文件***.bpl),
bpl文件主要有什么作用?
CoInitialize(nil)
try
Connection := tadoconnection.Create(nil);//
finally
CoUninitialize;
end;
-----
exception econverterror in module ****.dll at 0001d034
-----
是因为DLL返回的是TSTRINGLIST值;对于函数返回值的接收(一般函数及DLL函数),测试过以下三种情况;
1,
combobox1.items := dll函数(tstringlist) //出现类型转换错误;
2,
combobox1.items := 一般函数(tstringlist) //正常
3,
combobox1.items.addstrings(dll函数(tstringlist)); //正常;