C++Builder 程序员博客
6 Sep
SPCOMM.pas在BCB6下安装编译时出现:
[Pascal Hint]SPCOMM.PAS(207):Private Symbol 'SetParity' declared but never used
有没有简单的收发例子。
为何总是用各种控件呢?摩莎的Pcomm非常好用,不用安装,直接考到工程目录下就可以用,也有非常简单易读的帮助,还有范例程序。我用了好几年了,打遍所有问题。
学习
这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:五+九+零+四+九+二+六+八。另外,这个群里可以接项目。
24 Aug
我的程序中有调用word文档的按钮,本机使用一切正常,我先用
完全编译:
1.菜单:project- >options
2.compiler页 点击release按扭
3.linker页 去掉use dynamic rtl项的钩选
4.packages页 去掉build with runtime packages 项的钩选
得到exe文件,拷贝到目标机运行,开始一切正常,当点击那个"调用word文档的按钮"时,
报错" invalid Variant operation";
而后,我用installshield X Express打包的办法,其中我用向导动态扫描该程序相关的动态链接文件,
制作了一个setup文件,在目标机上运行,结果出现了同样的现象。
是我在编译选项上遗漏了什么吗?下面给出该按钮的代码,希望大侠们给点提示,先在此谢过了!
void __fastcall TForm1::WordFileClick(TObject *Sender)
{
Label5->Caption ="开始插入照片到word文档中,请稍候……";
// 有关word的操作
V=CreateOleObject("Word.application"); //得到Word对象
V.OlePropertySet("Visible",false); //使word不可见
Vd = V.Exec(PropertyGet("Documents")); //得到文档对象
Vd1=Vd.Exec(Procedure("Add")); //添加新文档
Vactive=V.OlePropertyGet("ActiveDocument");
Vactive.OlePropertyGet("Paragraphs").OleFunction("Add");
int i=1;//插入行数控制
int j=0;//插入的文件名的控制
double setsize;//设定的图像大小
if(Edit1->Text!="")
setsize=StrToFloat(Edit1->Text);
else setsize=10.0;
//插入标题
stext="附图:\n\n\n\n\n";
AddText(i,stext,0);
//循环插入图形和图名
i=3;
for(int mm=ListBox2->Items->Count -1;mm>=0;mm–)
{
stext="图:\n\n\n\n";
AddText(i,stext,1);
stext=ListBox2->Items->Strings[j].c_str() ;
//插入图名文字
AddText(i,stext,1);
//插入图形
AddPicture(ListBox2->Items->Strings[j],i-1,setsize);
j++;i=i+2;
}
Label5->Caption ="操作完成,请自行保存文档!";
V.OlePropertySet("Visible",true); //使word可见
}
对不起,我用installshield X Express不太熟,不过我又用
installshield X Express动态扫描了一下,同样出现了" invalid Variant operation"错误提示,
但在这个提示之后,还有一条提示:Could not convert variant of type(Array 0×0548)into
type(Dispatch).说我定义的variant类型变量,在进行类型转换时出错,我在此把头文件贴出来,帮
我分析一下,哪里不妥?
//—————————————————————————
#ifndef zhufile1H
#define zhufile1H
//—————————————————————————
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Dialogs.hpp>
#include "Word_2K_SRVR.h"
#include <OleServer.hpp>
#include <sysvari.h>
#include "comobj.hpp"
//—————————————————————————
class TForm1 : public TForm
{
__published: // IDE-managed Components
TLabel *Label1;
TLabel *Label2;
TEdit *Path;
TEdit *File;
TButton *Serch;
TListBox *ListBox1;
TListBox *ListBox2;
TButton *Add;
TButton *AddAll;
TButton *Del;
TButton *DelAll;
TButton *WordFile;
TEdit *Edit1;
TLabel *Label3;
TLabel *Label4;
TOpenDialog *OpenDialog1;
TLabel *Label5;
TScrollBox *ScrollBox1;
TScrollBox *ScrollBox2;
TButton *Button1;
void __fastcall SerchClick(TObject *Sender);
void __fastcall AddClick(TObject *Sender);
void __fastcall DelClick(TObject *Sender);
void __fastcall AddAllClick(TObject *Sender);
void __fastcall DelAllClick(TObject *Sender);
void __fastcall WordFileClick(TObject *Sender);
void __fastcall PathDblClick(TObject *Sender);
void __fastcall ListBox1Click(TObject *Sender);
void __fastcall ListBox2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall Edit1KeyPress(TObject *Sender, char &Key);
private: // User declarations
public: // User declarations
void __fastcall SearchFile(AnsiString Path,AnsiString filename,TStrings *list);
void __fastcall SearchPath(AnsiString Path,AnsiString filename,TStrings *list);
Variant V,Vd,Vd1,Vd2,Vactive;
void AddText(int i,Variant text,int duiqi);
void AddPicture(AnsiString name,int i,double setsize);
bool __fastcall DotInStr(AnsiString ass);
__fastcall TForm1(TComponent* Owner);
};
//—————————————————————————
extern PACKAGE TForm1 *Form1;
//—————————————————————————
#endif
另外,主文件的声明部分:
//—————————————————————————
#include <vcl.h>
#pragma hdrstop
#include "zhufile1.h"
//—————————————————————————
#pragma package(smart_init)
#pragma link "Word_2K_SRVR"
#pragma resource "*.dfm"
TForm1 *Form1;
#include <SysUtils.hpp>
Variant stext;
安装word了么?
在BCB5。0 下:
V.OlePropertySet("Visible",false);
在BCB6。0下:
V.OlePropertySet(WideString("Visible"),false);
其它也这么改
我找到答案了
还是完全编译的事情,在点击发布按钮时,会自动选择代码优化
我把代码优化去掉后,进行完全编译,
再将exe文件拿到目标机上试,就一切ok了;跟word是否可见没有关系
不过还是要谢谢"BCBPLC",这里有你的功劳。
我去微软查了下 这个错误号
原因
如果存在下列一种或多种情况,就可能会出现此问题:
• 没有正确配置 CD-ROM 或 DVD 驱动器。
• 程序 CD-ROM 或 DVD 损坏或变脏。
• Microsoft 数据访问组件 (MDAC) 安装损坏或您没有安装最新版本。
因为我是用硬盘安装的,所以前两条原因根本不存在,并且MDAC我也没有问题呀。
望高人救我!
6 Aug
如题
这些目录已经安装好了:XP Theme Manager、ExpressGDI+ Library、ExpressDataController、ExpressCommon Library
到安装这个目录ExpressLibrary时,老是提示“dxThemeManager.dcu”找不到
路径各方面都已经是设好了的
我一般是把Package目录下的文件复制到Source中,不过现在不用这么麻烦了,到老妖站上下载一个安装包自动安装:
http://www.ccrun.com/view.asp?id=506
aniven 兄
我是把source拷到package下,不过和你的原理应该是一样的
但是到安装这个目录ExpressLibrary时,老是提示“dxThemeManager.dcu”找不到
很郁闷
老妖的这个版本好像很低啊!
http://www.ccrun.com/view.asp?id=506
DevExpress VCL Products v37_03.07.2008 (完整源码)
安装版本
大概DevExpress也意识到了Dev系列组件在安装时的超复杂性,所以推出了集成安装版本。
使用这个安装版本,运行后选择合适的版本,然后安装,安装到最后会提示你要编译,最好选择编译,这样就省去了自己编译的麻烦。
编译后会在安装目录生成一个含有CPP和lib等文件的目录,在Options中配置目录即可,和安装其他组件一样。
这个我安装过,不过感觉好像版本很低
连表格的3.3版本都在里面
我也安装过,你们一般用这个控件做什么啊?
功能比较强啊
再试一下老妖网站上的安装版
安装完后,路径还要手工加
加完路径后,还是报很多文件找不到
比如*.obj,*.lib,*.res等等之类
正在将相应文件考入相应目录
看是否能成功!
将文件考入相应目录后出现如此情况:
真郁闷啊,在BCB中安装这么麻烦!
[Linker Error] Unresolved external '__fastcall Cxcontrols::RemoveAccelChars(const System::AnsiString, bool)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\CXEDITORSVCLC6.LIB ¦cxEdit.pas
[Linker Error] Unresolved external '__fastcall Cxcontainer::TcxContainer::Notification(Classes::TComponent *, Classes::TOperation)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\CXEDITORSVCLC6.LIB ¦cxEdit.pas
….
还有很多很多。。。
28 Jul
求一个好用BCB6.0安装程序的制作工具?我的BCB6.0是从网上下过来的,不是正版,我看论坛里有人说BCB有自带制作工具,可是我找不到.想必下过来的东西缺斤少两是正常的事.那位兄弟有就请发我吧:dura_ace@126.com 如果文件太大.也可QQ传我:156097263.小弟五十分跪求啊.
InstallShield 系列的就可以了
在讯雷上搜搜,大把
我专门来接分的。。
楼上的既然专门来接分,我怎么能让你空手而归呢.幸好我说的五十分跪求,可贴的分数却被我设成70分,我即没有失信,也没有让杰上的失望啊.哈哈哈.皆大欢喜啊.
24 Jul
系统XP的,刚下载的c++ builder 6.0 安装出现please insert Disc2 and Try agian, 怎么办啊,我没光盘
会这样嘛。。。我安装的怎么不会呢。。。
我再补充下,取消后出现
you must restart you system for the configuration changes made to borland C++builder 6.0to take effect Click yes to restart now or Noif palnto restart later.
叫你重启电脑 重启就可以用拉。
哦,谢谢大家啊,我想问下哪有c++builder的小例子,最好简单的,在哪下载啊,我要学习
23 Jul
从网上下载的含update4的bcb 6.0安装后在控件面版上找不到XML控件,该怎么办?
不知道你要的XML控件是指的什么?
看看View->Component List->找找TXMLDocument 或者其他带xml字样的!
其实要操作xml文件,你直接用 _di_IXMLDocument 这个就ok了我觉得!
XML控件自己添加进去
按照楼上朋友所说,在IDE中Component–>Install Packages点击Add按钮去增加包dclnet60.bpl,又提示找不到inetdbbde60.bpl文件,请问有哪位朋友能提供上述文件?
网络上的 龙卷风版本 是不行的
因为缺少B盘 ,只安装了 简单的A盘
大部分 功能是全的,但是安装的时候会提示一个error
你忽略掉后就不用安装B盘了
解决方法 找人要安装包
新手比较复杂
另一个办法 是安装 2个盘的 BCB
网上没连接地址
你不怕麻烦可以找朋友 U盘复制吧
,,
_di_IXMLDocument 用这个操作吧!
我个人不喜欢那种什么精简版或绿色版的C++Builder和Delphi,有些组件是不能精简地。再精简,干脆不要用了。
楼主还是找个2CD的完整版安装吧。
23 Jul
从ccrun上下载的easygrid控件,安装是提示add bcbie, 选择yes后又提示couldn't load package udr,it contains unit 'shdocvw_ocx,'which is also contained in package 'bcbie60'.
怎么解决?
多谢
加了,问题依旧啊。急
你要重新完全编译,这个我已经试过,没问题的
up
anliven
多谢,重新完全 编译就通过了。
还有一个小问题,easygrid支持单元格为控件么?想左侧第一列为复选框,能否实现?
16 Jul
请问:ThemeEngine v7.03在cb6 中如何安装?知道的朋友告诉一声。
都不用这个控件吗?
在bcb的菜单tools-enverioment option–libary 中添加了
themeEngine的代码或者库的路径了吗?
测试了,应该不是这个原因。编译或安装te_cb6.bpk时提示te_cb6.bpi找不到,不知道如何生成这个te_cb6.bpi?
问题得以解决。谢谢ccrun
2 Jul
以前用BCB6的时候,安装JCV1.99和JVCL331一切正常。
然后我装了BCB2007,下载了JCL-1.101.1.2725和JVCL333,
但是安装JCL的时候,提示找不到jediinstaller.exe。
我看了一下应该是没生成jediinstaller.exe。
请问各位大侠应该怎么解决?