XiaoHui.Net 笑汇程序员论坛Visual C++ 讨论区

   分享心得


页: [1]

gwq853875662007-10-12 06:04
分享心得

在开发的过程中的问题记录(会不断的增加,把我犯的一些错误,和一些心得与大家分享)
1. 在编译程序中老出现“fatal error C1010: unexpected end of file while looking for precompiled header directive”
   原因是:添加了一个新的.cpp文件,却没再最顶端包含#include<stdafx>,加上,便可解决这个问题,如果是在不想加这东西,可以在project->setting->c++ 的categray =precomplied Header 选择Not using……

2.线程函数作为类成员函数时: 编译提示error     C2664:     '_beginthreadex'     :     cannot     convert     parameter     3     from     'unsigned     long     (void     *)'     to     'unsigned     int     (__stdcall     *)(void     *)'  
解决方法:该线程函数作为类成员函数时一般加上static   修饰符。

3.某个应用程序只允许执行1次,即只产生一个窗口(这里以MFC程序为例)
// 创建互斥量
HANDLE m_hMutex = CreateMutex(NULL, FALSE, "Sample07");
// 检查错误代码
if (GetLastError() == ERROR_ALREADY_EXISTS) {
 // 如果已有互斥量存在则释放句柄并复位互斥量
 CloseHandle(m_hMutex);
 m_hMutex = NULL;
 // 程序退出
 return FALSE;
}
*将这段代码放进对应app类的InitInstance()成员函数定义中

4 不要用函数的指针参数来开辟动态内存,如果一定要用,请用2重指针,因为函数中参数传递的过程设计到一个副本的建立,在函数结束后,该副本资源会被释放。导致指针并不能如我们所愿的指向包含我们需要数据的地址

5 非法指针的问题:delete仅仅是将指针指向的内存释放掉,但是指针并不为NULL,所以要释放内存后最后将指针赋值为NULL,这是个比较好的习惯。

6 工程中连接.lib文件的语句
#program comment(lib,"名字");

7在工程中指定头文件等目录的方法:Project->setting   
  选择C/C++选项->Category:下选择Preprocessor   
  然后在下面的Additional   include   directories:下加上你的目录就行了

未完待续…………

[[i] 本帖最后由 gwq85387566 于 2007-10-12 14:06 编辑 [/i]]


TangoStudio2007-10-23 14:22
学习 楼主的善于总结。


//------------------------------------
我们有套类似于qq游戏,联众游戏的棋牌游戏平台,寻找合作。
拥有自主产权。定制或合作运营都可以。
我们的网站[url]www.game.ulovesoft.com[/url]


查看完整版本: 分享心得