2012-08-08 13:20
⁄ 工业·编程
⁄ 共 2385字
1.用VC建立一个WIN32 DLL
我们利用VC编写DLL有几种方法.如果用VC建立一个WIN32 DLL 工程.那这个工程就应该只导出C++的类或全局变量.和全局函数.方法就是在CPP文件中编写你的代码,为每个需要导出的元素进行导出办法是增加如下语句:
_declspec(dllexport)
你当然可以把它定义成宏
例如,如果是一个类STUDENT需要导出, 那么声明时应该是这样写 class _declspec(dllexport) student;
当然也可以定义时直接导出.
我们的客户端,也就是...
VC阅读全文
2012-08-08 13:18
⁄ 工业·编程
⁄ 共 3957字
1、在cpp文件中调用c文件中实现的函数的时候,需要用extern "C"声明该函数,否则cpp会按名字改编后的函数名去找该函数而找不到。(这是作用)
c文件中有一函数: void Transfer(int a; char b); cpp文件中必须用extern "C"声明该函数如下才可以实行调用: ...
c++阅读全文
2012-08-08 13:07
⁄ 工业·编程
⁄ 共 578字
如果这样定义对象:MyClass obj; 那么它的构造函数将会被执行,如果调用obj.MyMethod();也会执行正确。
可是如果带有括号:MyClass obj(); 那么它的构造函数不会被执行,调用obj.MyMethod();也会出现语法错误,请问这种语法是把obj定义成什么了?
#include <iostream> class MyClass { public: MyClass() { ...
c++阅读全文
2012-08-08 13:01
⁄ 工业·编程
⁄ 共 837字
为什么C程序中定义结构时经常要用到typedef呢?如: typedef struct _AM_WIN_MenuText { int idc; int message; } AM_WIN_MenuText; 为什么不直接把结构名定义为AM_WIN_MenuText然后使用就可以了。 取个类型的别名有什么作用呢? --------------------------------------------------------------- 那是因为不取别名的话,每次定义都要加struct --------------------...
c++阅读全文
2012-08-08 12:58
⁄ 工业·编程
⁄ 共 431字
break和continue的区别如下:
1. break可用于switch语句,表示跳出整个switch块,而continue则不能用于switch语句 2. 它们都可用于循环语句的循环体,所谓的区别也应该是它们对循环次数的影响不同。break用于立即退出当前循环,而continue仅跳过当次循环(本次循环体内不执行continue语句后的其它语句,但下次循环还会执行)。
举例说明 int i; int s = 0; for (int i = 1; i <= 10; i++) { if (i == 6) br...
c++阅读全文
2012-08-08 06:46
⁄ 工业·编程
⁄ 共 295字
//以下两个函数获取的是显示屏幕的大小,不包括任务栏等区域
int screenwidth=GetSystemMetrics(SM_CXFULLSCREEN); int screenheight=GetSystemMetrics(SM_CYFULLSCREEN);
//以下两个函数获取的是真正屏幕的大小,即实际的大小
int screenwidth_real=GetSystemMetrics(SM_CXSCREEN); int screenheight_real=GetSystemMetrics(SM_CYSCREEN);
//前两个函数获取的大小可能是1440*844 ,后两个获取的就是1440*900
VC阅读全文
2012-08-07 23:23
⁄ 工业·编程
⁄ 共 431字
在MFC中,都是以C++对象来操作窗口
而窗口是用句柄来标识的,这样就需要将窗口和C++对象关联起来
通过C++对象的成员变量m_hWnd来建立这种联系
如果一个窗口对象和一个窗口相关联了,那么我们要获取这个窗口对象(通常都是CWnd*形式),返回的就是一个持久的C++对象,
如果你要获取一个窗口(不是通过MFC类库创建的)的C++对象,那么MFC就会为你临时创建一个C++对象,返回其指针,这就是一个临时的对象。
作为临时对象,它在产生...
VC阅读全文
2012-08-07 23:18
⁄ 工业·编程
⁄ 共 1675字
WM_COMMAND产生的条件:点击菜单,点击加速键,点击子窗口按钮,点击工具栏按钮。这些时候都有command消息产生。
WM_COMMAND消息中有两个参数,wparam、lparam,定义如下:
wParam 高两个字节 通知码
wParam 低两字节 命令ID
lParam 发送命令消息的子窗体句柄。
对于菜单和加速键来说,lParam为0,只有控件此...
VC阅读全文
2012-08-07 23:15
⁄ 工业·编程
⁄ 共 1334字
Windows给窗口发送消息,这意味著Windows调用窗口消息处理程序。但是,Windows程序也有一个消息循环,它调用GetMessage从消息队列中取出消息,并且调用DispatchMessage将消息发送给窗口消息处理程序。 那么,Windows程序是依次等待消息(类似于普通程序中相同的键盘输入),然后将消息送到某地方去的吗?或者,它是直接从程序外面接收消息的吗?实际上,两种情况都存在。 消息能够被分为「队列化的」和「非...
VC阅读全文
2012-08-07 23:10
⁄ 工业·编程
⁄ 共 834字
在窗口大小发生改变时,系统往窗口发送WM_SIZE消息,WPARAM指出窗口新的状态,LPARAM给出窗口新的大小。窗口的状态有三种:SIZE_MINIMIZE,SIZE_MAXIMIZE,SIZE_RESTORED。系统根据当前窗口的状态,在产生WM_SIZE消息时指定不同的WPARAM。然而,系统如何知道窗口当前的状态。很显然,系统必须用一些内存保存窗口当前的状态。保存在哪里呢?
用spy++观察一个窗口,很快就可以发现在...
VC阅读全文