社区
C++ Builder
帖子详情
悬赏,求教BCB中加::问题
嘻嘻哈哈穷开心
2012-10-12 03:02:23
我是BCB菜鸟,最近刚开始学习,有一问题请教高手们
为什么有些函数会提示错误"Call of nonfunction",加入不加::则会运行成功.
多谢
如有满意答案,会加分
...全文
152
20
打赏
收藏
悬赏,求教BCB中加::问题
我是BCB菜鸟,最近刚开始学习,有一问题请教高手们 为什么有些函数会提示错误"Call of nonfunction",加入不加::则会运行成功. 多谢 如有满意答案,会加分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
嘻嘻哈哈穷开心
2012-10-17
打赏
举报
回复
[Quote=引用 15 楼 的回复:]
void __fastcall TForm1::CopyFileClick(TObject *Sender)
跟这个CopyFile控件是不是有关?
[/Quote]
就是这个问题,已经修改过来了
嘻嘻哈哈穷开心
2012-10-17
打赏
举报
回复
[Quote=引用 17 楼 的回复:]
楼上所言极是。
楼主将这个控件(看起来象个按钮?)的名字命名为CopyFile,正好和Windows API提供的CopyFile同名。因此引起的冲突。所以我是建议给组件命名时使用前缀,如btnCopyFile,这样容易标识,并且一般不会重名。
[/Quote]
多谢多谢,就是这个问题,竟然没有注意,现在已经OK了
多谢妖哥
嘻嘻哈哈穷开心
2012-10-17
打赏
举报
回复
[Quote=引用 14 楼 的回复:]
Unit2.h文件中有什么内容?
[/Quote]
就是一个新的Form
ccrun.com
2012-10-16
打赏
举报
回复
Unit2.h文件中有什么内容?
嘻嘻哈哈穷开心
2012-10-16
打赏
举报
回复
[Quote=引用 12 楼 的回复:]
看不出什么问题,你的代码多吗?如果不涉及隐私,贴出来看看。
[/Quote]
不多,自己写着玩儿的,只是好奇为什么一直有问题
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "iostream.h"
#include <fstream>
#include "Unit1.h"
#include "Unit2.h"
#include <time.h>
#include <stdio.h>
#include "IniFiles.hpp"
#include <windows.h>
#include<Registry.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CopyFileClick(TObject *Sender)
{
AnsiString asFlieName = ExtractFilePath(Application->ExeName)+ "bcmvars.nvm";
if ( !FileExists( asFlieName ) )
{
//ShowMessage("error");
MessageBox(NULL,"NO CONFIG FILE EXIST!!!","ERROR",MB_ICONERROR);
}
::CopyFile(asFlieName.c_str(),"C:\\WINDOWS\\system32\\drivers\\bcmvars.nvm",false);
Close();
}
其他控件的代码,跟这个无关,就这样的?为什么非要加::
ccrun.com
2012-10-16
打赏
举报
回复
楼上所言极是。
楼主将这个控件(看起来象个按钮?)的名字命名为CopyFile,正好和Windows API提供的CopyFile同名。因此引起的冲突。所以我是建议给组件命名时使用前缀,如btnCopyFile,这样容易标识,并且一般不会重名。
碧海情天-赵亮
2012-10-16
打赏
举报
回复
把CopyFile控件更名为copyFile看看。
碧海情天-赵亮
2012-10-16
打赏
举报
回复
void __fastcall TForm1::CopyFileClick(TObject *Sender)
跟这个CopyFile控件是不是有关?
ccrun.com
2012-10-15
打赏
举报
回复
看不出什么问题,你的代码多吗?如果不涉及隐私,贴出来看看。
嘻嘻哈哈穷开心
2012-10-15
打赏
举报
回复
[Quote=引用 10 楼 的回复:]
引用 7 楼 的回复:
只有一个using namespa,其他没有啦
using的什么namespace?那个名字空间中是否也有CopyFile的函数?
[/Quote]
using namespace std;
ccrun.com
2012-10-12
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
只有一个using namespa,其他没有啦
[/Quote]
using的什么namespace?那个名字空间中是否也有CopyFile的函数?
嘻嘻哈哈穷开心
2012-10-12
打赏
举报
回复
[Quote=引用 8 楼 的回复:]
引用 5 楼 的回复:
CopyFile ,你在哪个代码里用,工程怎么建立的,这个是API,不会这么复杂啊
就是在BCB里使用的,包含过winbase.h之后,必须加::才能编译成功.为什么?
[/Quote]
还需要头文件,还有其他操作,才能用windows API函数么?
嘻嘻哈哈穷开心
2012-10-12
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
CopyFile ,你在哪个代码里用,工程怎么建立的,这个是API,不会这么复杂啊
[/Quote]
就是在BCB里使用的,包含过winbase.h之后,必须加::才能编译成功.为什么?
嘻嘻哈哈穷开心
2012-10-12
打赏
举报
回复
[Quote=引用 6 楼 的回复:]
引用 4 楼 的回复:
嗯,是CopyFile 提示的是call of nonfunction
CopyFile是Windows API,在这个函数前面加::是可以的。你的工程中用到了什么名字空间?
[/Quote]
只有一个using namespa,其他没有啦
ccrun.com
2012-10-12
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
嗯,是CopyFile 提示的是call of nonfunction
[/Quote]
CopyFile是Windows API,在这个函数前面加::是可以的。你的工程中用到了什么名字空间?
缘中人
2012-10-12
打赏
举报
回复
CopyFile ,你在哪个代码里用,工程怎么建立的,这个是API,不会这么复杂啊
嘻嘻哈哈穷开心
2012-10-12
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
copyfile 注意大小写
[/Quote]
嗯,是CopyFile 提示的是call of nonfunction
缘中人
2012-10-12
打赏
举报
回复
copyfile 注意大小写
嘻嘻哈哈穷开心
2012-10-12
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
::是表示域的操作符,对于Windows API来说,前面加::可以和VCL一些同名的函数区别出来。而VCL的函数光加::则是画蛇添足,如果不指明名字空间,就会起反作用。
[/Quote]
就比如用copyfile函数,右键find Declaration 可以找到这个函数,为什么不能直接用这个函数?
谢谢啊,我刚开始学习
ccrun.com
2012-10-12
打赏
举报
回复
::是表示域的操作符,对于Windows API来说,前面加::可以和VCL一些同名的函数区别出来。而VCL的函数光加::则是画蛇添足,如果不指明名字空间,就会起反作用。
最强悍的 VC VB反编译工具 Hex-Rays
最强悍的反编译工具 Hex-Rays。 可以反编译 VB VC
BCB
Delphi 等等一切 x86/x64 代码为 C 代码。密码参见内附说明文件。 我写了个简单的介绍 http://blog.caozhongyan.com/article.asp?id=19
BCB
error:Fatal: Unable to open file 'DCLUSR.LIB',E2209 Unable to open include file 'SUIForm.hpp'
1、在C:\Program Files\Borland\CBuilder6\Lib文件夹中搜索名称为“DCLUSR”的文件,找到目标
关于在
bcb
中调用外部程序的用法
1:用system("")运行(简单,像在CMD命令行一样) 2:用WinExec()运行 3:用CreateProcess运行 4:用ShellExecute运行. 1) WinExec() 函数原型: UINT WinExec(LPCSTR lpCmdLine,UINT uCmdShow); 参数说明:(激活的意思是能接受焦点,即标题栏变成蓝色) lpCmd
BCB
之间各种数据类型之间的转换
IntToStr 将整数转换为AnsiString字符串,函数原型如下: AnsiString __fastcall IntToStr(int Value); IntToHex 将整数转换为十六进制字符串,函数原型如下: AnsiString __fastcall IntToHex(int Value, int Digits); eg: AnsiString s0,s1; char *Bu...
BCB
常见错误和运行时异常
写在前面:当你在百度、谷歌上都搜索不到解决方案时,证明你的思路是错误的,应改变解决思路 1、unresolve external '' 这些错误是由于: (1)工程中没有包含相应的cpp文件;(2).h中有函数声明,.cpp中没有函数实现;(3)类的CPP文件中,成员函数没有在方法名前加类名;(4)类静态成员变量没有在cpp文件中初始化;(5)这种情况出现在命名空间中,即.h文件中声明函数,并...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章