Delphi疑难问题整理!!!
一.Dll调用时报错,例如:
TGetResPrice = function(var AName: string; AFileName: string): TResourceRecArray; stdcall;
var
LFunction: TGetResPrice;
调用:
@LFunction := GetProcAddress(LDllHandle, ResPriceLoad_FuncName);
if Assigned(LFunction) then
LResc := LFunction(AName, AFileName);
dll实现:
function GetResPriceInfo(var AName: string; AFileName: string): TResourceRecArray; stdcall;
begin
。。。。。
end;
有可能是参数缺少或不一致,两者必须一致!
二.delphi dll释放报错 FreeLibrary报错
FreeLibrary(LDllHandle);
1.有可能是调用和DLL的两者调用FastMM不一致,一个引用了,另外一个没有引用;
uses
FastMM4,
ExceptionLog,
SysUtils,
Classes,
TableTypes,
CoDialogs,
PriceLoad in '..\Source\PriceLoad.pas';
2.另外一个可能就是两者引用包不一样,Component--Install Packages---勾选Build with runtime packages;
3.另外参数如果是字符串,要主程序和dll都要引用sharemem,在项目文件开头处引用;
4.如果是调用了Com组件,需要
开始处:
CoInitialize(nil);
结尾处:
CoUninitialize;
三.TAppBuilder.CheckDog 提示注册类已经存在:DPR文件引用包的问题
例如:A class named TcxRect already exists
在EXE+DLL架构中,多个使用DEV控件的DLL中出现“A class named TcxRect already exists”错误。
把cxLibraryVCLD7.bpl拷到运行目录下,并且在工程的options中,把cxLibraryVCLD7.bpl加入到runtime packages中,可解决“A class named TcxRect already exists”错误。
类似的错误,一般都是缺少运行时包所致,仔细排查都能解决。
Qd8.exe 加载modArchRptData.dll,在QD8.exe---Component--Install Packages---Build with runtime packages --- 后面添加cxLibraryVCLD7;
四、[Error] Packages 'DTree70' and 'dxEditorsD7' both contain unit ***
项目引用包问题,重复引用了;找到菜单---components--Install Packeages 更改为正确的值:
VCL;RTL;DBRTL;VCLDB;Common;FIB70;TB2K70;TBX70;Berg70;DTree70;IoData;dac70
五.Could not find interface IAppServer in type library
遇到情况:Delphi7---File--new Other---Multitier--Remote data Module
解决方法:没有注册Midas.dll,找到DELPHI7安装目录下的dll,在运行窗口输入:
regsvr32 "C:\Program Files (x86)\Delphi7\Bin\midas.dll"
Delphi疑难问题整理!!!的更多相关文章
- 吐血整理 Delphi系列书籍 118本(全)
Delphi 教程 系列书籍 网友(老帅)整理 001_<Delhpi6数据库设计思想与实践> 002_<Delphi6应用开发指南> 003_<Delphi6开发人员指 ...
- 整理delphi及整理原则
回看delphi使用的人也不多,但一直觉得这门语言挺好的,所以一直在用,在很多方面也给了很多帮助和启示 加上delphi的学习文件也确实比较少,故收集起来也不容易.今日,重新整理一下delphi ,一 ...
- Delphi 关键字详解[整理于 "橙子" 的帖子]
absolute //它使得你能够创建一个新变量, 并且该变量的起始地址与另一个变量相同. var Str: ]; StrLen: Byte absolute Str; //这个声明指定了变量 ...
- delphi中通过http控件上载文件的问题(紧急) 整理的CSDN 帖子
http控件能不能实现post文件?要求效果就像普通的html中通过表单(form中<INPUT TYPE="FILE" NAME="FILE1" SIZ ...
- Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)
Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...
- 从网上整理的一些delphi字符串加密解密方法
function Encode(Str: string): string; var //加密 TmpChr: AnsiChar; i, Len: integer; begin Result := St ...
- delphi中Webbrowser疑难问题集锦<转>
1.获得网页中变量值 htm中<script> var currID=123</script> 程序中可以这么调用 id := Form1.WebBrows ...
- delphi 四舍五入Round函数【百帖整理】
在最近版本的Delphi Pascal 编译器中,Round 函数是以 CPU 的 FPU (浮点部件) 处理器为基础的.这种处理器采用了所谓的 "银行家舍入法",即对中间值 (如 ...
- Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决
Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLSto ...
随机推荐
- 【LAYABOX】轴心点和锚点
https://blog.csdn.net/RuoYeKnight/article/details/77947288 轴心点和锚点是一个概念,都是基准点,决定了图片在舞台的位置, 简单地说,若对spr ...
- NonAction与ChildActionOnly
NonAction 表示它不是一个真正的Action,而是一个普通方法: ChildActionOnly 表示它只能在View中通过Html.Action或Html.RenderAction来使用
- MySQL 出现 Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
MySQL 出现 Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 一大 ...
- 微软和Sun针对Java的世纪之战
1996年9月的某一天,微软浏览器部门的主管艾达姆·波茨瓦斯几经考量之后,提笔给时任微软CEO的比尔·盖茨写了一邮件,他非常恳切地提醒比尔·盖茨注意一个正在形成的威胁.他写到:”必须意识到Java不仅 ...
- Linux+eclipse+maven+tomcat7小项目实战
一.准备工作:CentOS6.5安装linux,maven,tomcat7,eclipse 二.在linux中打开eclipse,创建一个maven项目 修改web.xml 打开Navigator视图 ...
- mysql之 xtrabackup-2.4.12 安装
版本说明:备份工具:percona-xtrabackup-2.4.12-Linux-x86_64.libgcrypt11os:centos 6.5 1.解压安装包tar zxvf percona-xt ...
- mobx 知识点
antd+mobx 项目例子:https://github.com/cag2050/antd_mobx_demo 在 create-react-app 创建的项目中,使用 mobx:https://s ...
- 纹理,这次没用Shader头文件,但是没有报“超出内存”的错误,不知道为什么
#include <iostream> using namespace std; //using std::cout; using std::cin; using std::endl; # ...
- ThinkPHP5与JQuery实现图片上传和预览效果
内容正文 这篇文章主要为大家详细介绍了thinkphp上传图片功能,和jquery预览图片效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先上效果图: html和js代码如下: <!DO ...
- VC++6 调用teststand api的方法
参考example中的vs2010的例子,创建MFC工程 打开project->setting ,c/c++ tab cat 选 Proprocessor ->Additional in ...