0%

::是域运算符,一个用法是,如果在局部有一个变量n,还有一个全局变量n,即两个同名,你要想访问全局的就要写::n,写n就是局部变量.另外一个就是控制命名空间,例如C++中的cin和cout属于std命名空间,就要写std::cinstd::cout,除非你在前面写了using namespace std;就可以免除每次写std::的麻烦了。

一般你写一个类中的函数,也会用到::。这个运算符表示是这个类中的函数,比如说people类中的name函数就可以写成

1
void People :: name() {}

Declare语句中的Alias子句是一个可选的部分,用户可以通过它所标识的别名对动态 库中的函数进行引用。例如,在下面的语句中,声明了一个在VB中名为MyFunction的函数,而它在动态库Mydll.dll中最初的名字是MyFunctionX。

1
Private Declare Function MyFunction Lib "Mydll.dll" _Alias "MyFunctionX" ( ) As Long

通常在以下几种情况时需要VB使用Alias子句:

##处理使用字符串的系统Windows API过程

如果调用的系统Windows API过程要使用字符串,那么声明语句中必须增加一个Alias 子句,以指定正确的字符集。包含字符串的系统WindowsAPI函数实际有两种格式:ANSI和Unicode。因此,在Windows头文件中,每个包含字符串的函数都同时有ANSI版本和Unicode版本。例如,下面是SetWindowText函数的两种C语言描述。可以看到,第一个描述将函数定义为SetWindowTextA,尾部的”A”表明它是一个ANSI函数:

阅读全文 »

最近在看一个ClientPrint程序涉及到vc+vb编程,各种以前没有见到过得奇怪的东东我全部摆在这里留念了!

##CWPSTRUCT structure

Defines the message parameters passed to a WH_CALLWNDPROC hook procedure,
CallWndProc.
###Syntax:

1
2
3
4
5
6
typedef struct tagCWPSTRUCT {
LPARAM lParam;
WPARAM wParam;
UINT message;
HWND hwnd;
} CWPSTRUCT, *PCWPSTRUCT, *LPCWPSTRUCT;
阅读全文 »