VC常用代码[转]

VC代码收集
一、改变视图背景色:
在CView的OnDraw函数中添写如下一段程序代码:
void CFileNameView::OnDraw(CDC* pDC)
{
    CFileNameDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    CRect rectClient;
    CBrush brushBkColor;
    GetClientRect(rectClient);
    brushBkColor.createSolidBrush(RGB(255,0,0)); //颜色设置 阅读全文 >>

类别: C++/VB. 标签: . 阅读(94). 评论(0) »

在VC6中使用正则表达式解析字符串

接前面一篇日志,当用 CInternetSession 抓到网页内容之后,就要从中按某种模式截取自己想要的东西,比如其中的电话区号,对于这种事情最擅长的莫过于正则表达式了,以及它的分组/后向引用功能。

VC.net 倒是提供了一个很好的正则表达式类库 CATLRegExp (据说是全世界效率最高的正则表达式库),可是却不能在VC6上使用,VC6可以使用VBS(Microsoft VBScript Regular Expression 5.5)这个 COM 来处理正则表达式,或者引入 vbscript.dll 的方式,最好的办法还是借助于第三方库来处理正则表达式,如 boost,更何况若是使用 COM 就不太值(COM给人的感觉总有些笨拙)。 阅读全文 >>

类别: C++/VB. 标签: , . 阅读(173). 评论(0) »

VC中使用CInternetSession抓取网页内容

在 VC 中用 WinInet 的 CInternetSession::OpenURL(url),得到一个 CFile,读取其中的内容即可,详细代码如下

其他如不从缓存中读取内容及如何使用代理连接现在就不说了,可以参考下面的链接,或者下次补上。另外不妨看看 Java 是如何读取 URL 内容的,更简单

阅读全文 >>

类别: C++/VB. 标签: , . 阅读(285). 评论(0) »

VC编程中常用快捷键【转】

忽又想,编写桌面软件 Java 始终是跟不上步伐,VC 能非常好的平衡开发与运行的效率。 掌握一个 IDE,想提高开发上的效率,记住常用的快捷键是很有必要的,真正的对战类游戏高手无不娴熟于键盘的微操作,那种叫嚣着真正的程序员是用记事本编程实在听来让人冷峻不经。于是也就有了下文,在网上搜来的 VC 常用快捷键 阅读全文 >>

类别: C++/VB. 标签: . 阅读(82). 评论(0) »

在 Visual Studio 或 Rational Rose 中使用 CVS

Eclipse 内置就对 CVS 很好的支持,而 Visual Studio(.net) 和 Rational Rose 等对 VSS 支持很好,因为他们遵循的是 Microsoft SCC API,那么如何让 Microsoft SCC API 与 CVS 桥接起来呢?这就是现在要介绍的几个工具

1. Jalindi 这个程序完全免费,任你使用

Jalindi 的网址
http://www.devhood.com/tools/tool_details.aspx?tool_id=491

http://www.jalindi.com/igloo/index.html 阅读全文 >>

类别: C++/VB. 标签: , , . 阅读(90). 评论(0) »

VC窗口程序中出现中文乱码的解决

用 VC6 的 MFC AppWizard 生成的窗口程序,窗口标题或者标签用中文,编译执行发现中文成乱码了,奇怪,以前怎么没有出现这种问题呢?

在网上找找资料才知道,原来我现在用的是非中文 XP 操作系统,在用向导生成窗口程序的过程中,没有中文语言的选项。不知道为什么,我的操作系统的区域都是设置成的中国,语言也是设成的简体中体,都没错的,VC6 安装程序看我的界面不是中文就不给我装上中文语言支持的动态库。 阅读全文 >>

类别: C++/VB. 标签: . 阅读(1,188). 评论(0) »

在VB中进行条件编译

因为工作的需要,在某些时候又要拣一拣令我生厌的VB,是要在别人代码的基础上进行修改。看人家代码都是写连接字符串、用户名和密码都写两套,开发时用一套,注释另一套,发布时反过来,更加了VB还只能行注释。我一看就嫌这麻烦,宁愿多思考思考,看看有啥好办法能偷偷懒,当这事,条件编译了。

以前就没怎么用过VB,更别提VB中条件编译了,Goole搜,发现VB中可以用几个预编译指令: #Const、#If .Then ...#ElseIf.Then...#Else...#End If

#Const 声明一个常量,相当于宏定义,用#Const定义的只能被当前模块识别。例如定义常 DebugVer =1,标明是调试版本:

#Const DebugVer = 1

然后,数据库连接串写成

#If DebugVer = 1 Then  '或者是#If DebugVer Then VB和C、C++也一样,非零为真
connStr = "Provider=OraOLEDB.Oracle;Data Source=Fraud-Test;User Id=Unmi;Password=testpwd;"
#Else
connStr = "Provider=OraOLEDB.Oracle;Data Source=Fraud;User Id=user;Password=pwd";
#End If

要发布到正式环境时编译前只需要把 #Const DebugVer = 1 改为 #Const DebugVer = 1 就 OK 了。 阅读全文 >>

类别: C++/VB. 标签: . 阅读(156). 评论(0) »

C++的头文件中类声明后忘记加分号产生不可预期的编译错误

头文件 Test.h 的内容是
class Test
{
public:
 virtual void test1();
}
实现文件是 Test.cpp
#include "Test.h"
#include <iostream>
using namespace std;
void Test::test1(){  cout<<"Hello"<<endl; }

编译时出现错误
c:\program files\microsoft visual studio\vc98\include\errno.h(29) : error C2143: syntax error : missing ';' before 'string' 阅读全文 >>

类别: C++/VB. 标签: . 阅读(258). 评论(0) »

VB采用ADO的方式操作Excel表格

使用VB配搭着ADO可以像操纵Access数据文件一样操作Excel文件,对于如何用ADO操作Excel文件,首先应该建立一些基本概念。你需要将一个Excel数据文件想象为一个关系数据库,Excel文件中的每个工作表就对应该数据库中的一个表,而工作表中的每一列当然就是表的列了。

代码如下:操作 book1.xls 的 sheet1 工作表,注意要写成 sheet1$ (加个美元符号) 阅读全文 >>

类别: C++/VB. 标签: , , . 阅读(787). 评论(0) »

拾谈"用最有效率的方法算出2乘以8等於几?"

这是网上流传的"变态级JAVA程序员面试32问"的其中一题(二十八题),然后下面给出来的答案是

第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
有C背景的程序员特别喜欢问这种问题。

2 << 3

粗看似乎很在理,大致想来2<<3会是移位操作,在Java的字节码中移位指令是ishl(右移),而在CPU上的硬件指令可能就会是shl(算术右移指令)。其实不然,如果熟悉汇编语言,还考虑过编译优化,2<<3根本不会使用移位操作,而是在编译时就优化计算出16来了。

但如果是写成这样的方式(int i = 2; int j = i<<2;),又是不一样的,大家可以从代码不同写法生成的Java操作指令或汇编指令看出个端倪。 阅读全文 >>

类别: C++/VB, Java/JEE. 标签: . 阅读(236). 评论(0) »