当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 在进行多线程程序设计的时候,我们经常用到AfxBeginThre
 

 

 ·vc6模拟c#的anchor     »显示摘要«
    摘要:用c#写windows程序的时候,我们可以注意到里面有个很有意思并且很有用的东东“anchor”。它可以被指定为“top, bottom, left, right”的组合。这个东西可以简化我们的界面上的很多工作,很多时候都可以不用对布局写代码。以下是我在vc6里给出的模拟解决方案:#pragma warning(disable: 4786)#incl......
    摘要:前言: 本文只提供vc6.0的编译说明,如果想知道vc.net下的编译过程请参看原文原文: http://www.voxgratia.org/docs/openh323_windows.html作者 :craig southeren翻译 : richard原文更新日期:2004年11月16日1.介绍 这是一篇彻底讲解如何用msvc6.0建立openh323的文章。这个篇文章是上一篇文章的延续,所以......


AfxBeginThread函数初探
在进行多线程程序设计的时候,我们经常用到afxbeginthread函数来启动一条线程

   afx_threadproc pfnthreadproc,//线程函数地址 【程序编程相关:构造函数初始化表的使用规则

该函数使用起来非常的简单方便,其定义如下

cwinthread* afxbeginthread( 【推荐阅读:一个透明的CStatic控件【原创】

   int npriority = thread_priority_normal,//线程优先级 【扩展信息:工作线程中调用UI线程创建的窗口的Upd

   lpvoid pparam,//线程参数

   uint nstacksize = 0,//线程堆栈大小,默认为1m

   dword dwcreateflags = 0,//

   lpsecurity_attributes lpsecurityattrs = null

);

cwinthread* afxbeginthread(

   cruntimeclass* pthreadclass,

   int npriority = thread_priority_normal,

   uint nstacksize = 0,

   dword dwcreateflags = 0,

   lpsecurity_attributes lpsecurityattrs = null

);

参数说明:

pfnthreadproc:线程函数的地址,该参数不能设置为null,线程函数必须定义成全局函数或者类的静态成员函数

例如:

uint mythreadfunc(lpvoid lparam)

或者

class a

{

public:

        static uint __stdcall mythreadfunc(lpvoid lparam);

}

之所以要定义成类的静态成员函数,是因为类的静态成员函数不属于某个类对象,这样在调用函数

的时候就不用传递一个额外的this指针.

pthreadclass:指向从cwinthread派生的子类对象的runtime_class

pparam:要传递给线程函数的参数

npriority:要启动的线程的优先级,默认优先级为thread_priority_normal(普通优先级),关于线程

 优先级的详细说明请参考platform sdk setthreadpriority函数说明

nstacksize:新线程的堆栈大小,如果设置为0,则使用默认大小,在应用程序中一般情况下线程的默认堆栈大小

 为1m


...   下一页
 ·windows网络编程     »显示摘要«
    摘要:我把windows网络编程里的例子封装到一类里,这样方便初学者使用初学者在继续深入后可以扩展这个类,另外做成lib , 或者 dll也不错其实这并没有别的功能只是让初学者明白这就是一个最基本的 基于tcp连接的服务端程序了就像 windows的基本框架一样, 有了这个 你就可以继续深入的学习某个协议的 函数,然后不断的丰富这个框架另初学者迷惑的是 一个网络 程序究竟是如何实现的一个网络程序 目前最......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE