??xml version="1.0" encoding="utf-8" standalone="yes"?>国产农村妇女毛片精品久久,波多野结衣久久,久久精品亚洲福利http://www.shnenglu.com/Error/category/18297.htmlzh-cnSun, 24 Feb 2013 03:00:19 GMTSun, 24 Feb 2013 03:00:19 GMT60伙神的读写锁实现http://www.shnenglu.com/Error/articles/197989.htmlEnicEnicFri, 22 Feb 2013 00:54:00 GMThttp://www.shnenglu.com/Error/articles/197989.htmlhttp://www.shnenglu.com/Error/comments/197989.htmlhttp://www.shnenglu.com/Error/articles/197989.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/197989.htmlhttp://www.shnenglu.com/Error/services/trackbacks/197989.html 吉林-伙(694129464)  19:59:24
class CReadWriteLock
{
private:
    int m_nReadCount;
    pthread_mutex_t m_mutexRead;
    pthread_mutex_t m_mutexWrite;
public:
    CReadWriteLock():m_nReadCount(0)
    {
        pthread_mutex_init(&m_mutexRead, NULL);
        pthread_mutex_init(&m_mutexWrite, NULL);
    }
    ~CReadWriteLock()
    {
        pthread_mutex_destroy(&m_mutexRead);
        pthread_mutex_destroy(&m_mutexWrite);
    }
public:
    void LockRead()
    {
        pthread_mutex_lock(&m_mutexRead);
        m_nReadCount++;
        if(m_nReadCount == 1)
        {
            pthread_mutex_lock(&m_mutexWrite);
        }
        pthread_mutex_unlock(&m_mutexRead);
        printf("read lock\n");
    }

    void UnlockRead()
    {
        pthread_mutex_lock(&m_mutexRead);
        m_nReadCount--;
        if(m_nReadCount == 0)
        {
            pthread_mutex_unlock(&m_mutexWrite);
        }
        pthread_mutex_unlock(&m_mutexRead);
        printf("read unlock\n");
    }

    void LockWrite()
    {
        pthread_mutex_lock(&m_mutexWrite);
        printf("write lock\n");
    }

    void UnlockWrite()
    {
        pthread_mutex_unlock(&m_mutexWrite);
        printf("write unlock\n");
    }
};



 深圳-C/C++传奇(605934668)  20:03:45
posix有现成的dmutex
吉林-伙(694129464)  20:03:57
我昨天搜索了一下资?nbsp;的确?br />吉林-伙(694129464)  20:06:42
phtread_rwlock_init
pthread_rwlock_destroy
 吉林-伙(694129464)  20:38:21
?nbsp;我说?nbsp;rwlock 怎么不死锁了?br />我以为我用错了呢
原来是死?nbsp;会返?nbsp;一?5错误?br />E序q会执行
更高U一?br />



伙神的实CQ逻辑主要几种在读锁,写锁?#8220;被动模式”。读锁根据读锁次数操作写锁状态。读锁保证,当读锁操?gt;0的时候写锁是锁住的,当读?=0的时候写锁是解开的?/div>


Enic 2013-02-22 08:54 发表评论
]]>
关于vs2012 sp1讄~译兼容xp和字体设|?/title><link>http://www.shnenglu.com/Error/articles/197986.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Thu, 21 Feb 2013 14:45:00 GMT</pubDate><guid>http://www.shnenglu.com/Error/articles/197986.html</guid><wfw:comment>http://www.shnenglu.com/Error/comments/197986.html</wfw:comment><comments>http://www.shnenglu.com/Error/articles/197986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Error/comments/commentRss/197986.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Error/services/trackbacks/197986.html</trackback:ping><description><![CDATA[1.讄兼容XP<br />project property -> configuration properties -> general -> Platform toolset -> Visual Studio 2012 - Windows XP (v110_xp)<br /><br />2.字体讄<br />tools -> options -> environment -> fonts and colors -> font<br /><br /><br />*************************<br />consolas字体 9号大看h很舒?br /><img src ="http://www.shnenglu.com/Error/aggbug/197986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Error/" target="_blank">Enic</a> 2013-02-21 22:45 <a href="http://www.shnenglu.com/Error/articles/197986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>d锁引发的讨论http://www.shnenglu.com/Error/articles/197660.htmlEnicEnicThu, 31 Jan 2013 11:33:00 GMThttp://www.shnenglu.com/Error/articles/197660.htmlhttp://www.shnenglu.com/Error/comments/197660.htmlhttp://www.shnenglu.com/Error/articles/197660.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/197660.htmlhttp://www.shnenglu.com/Error/services/trackbacks/197660.html
VCZH._丝数组[0]<errorcpp@qq.com>  18:45:53
玛Q我现在要读写锁
哪ؓ接我一?br />{boost能用了还l你
vczh四号_丝(342775210)  18:46:25
不优化性能
优化啥啊,Ҏ没性能问题
(?br />
q摩托上班看着不错
VCZH._丝数组[0]<errorcpp@qq.com>  18:47:08
我去
N你们都不用读写所的,Q,
hzcv._丝数组[-1](450635425)  18:47:04
惌一?br />我以前有一个,但明显没q个?br />vczh四号_丝(342775210)  18:47:18
必须不用
d锁就是搓
hzcv._丝数组[-1](450635425)  18:47:31
普通锁不行吗?
vczh四号_丝(342775210)  18:47:36
是啊
普通的锁这么好
VCZH._丝数组[0]<errorcpp@qq.com>  18:47:50
玛Q让我做框架
那群队友都懒的不行啊
我让他用?nbsp;他不乐意
一定要我在底层全部搞完?br />vczh四号_丝(342775210)  18:48:22
直接用手枪蘪M?br />VCZH._丝数组[0]<errorcpp@qq.com>  18:49:39
是个加载自动更新的东西
原来是一个boolcd没有用锁保护
现在我来做,我想q是保护?br />vczh四号_丝(342775210)  18:49:46
用atomic
VCZH._丝数组[0]<errorcpp@qq.com>  18:49:53
玛问题来?br />问题?br />他们要要求加载的时?nbsp;d作能自动挂v
又要h
VCZH._丝数组[0]<errorcpp@qq.com>  18:52:07
我l去_堆里拔东西
?br />vczh四号_丝(342775210)  18:52:10
atomic不行?
hzcv._丝数组[-1](450635425)  18:52:42
d留两个函?br />VCZH._丝数组[0]<errorcpp@qq.com>  18:52:58
q样?br />
有个mutex 加蝲的时候lock上,bool ture
hzcv._丝数组[-1](450635425)  18:52:52
用mutex一夹,OK
VCZH._丝数组[0]<errorcpp@qq.com>  18:53:02
然后查询的时?br />不理会mutex
监视到ture?nbsp;unlock
vczh四号_丝(342775210)  18:54:41
你那个是windows
不能用mutex?br />windows得用spin lock ?br />(?br />vczh.lsbandar(14735407)  18:55:04
。。?nbsp;
关键D不?nbsp;
用什么spinlock 
hzcv._丝数组[-1](450635425)  18:55:41
CriticalSection
hzcv._丝数组[-1](450635425)  19:00:28
Spinlock是什么?
hzcv._丝数组[-1](450635425)  19:02:19
#if defined(UNIX)
pthread_mutex_lock(&mutex_agent_list);
#elif defined(WINDOWS)
EnterCriticalSection(&cs_agent_list);
#endif

SpinLock和CriticalSection有什么不同啊Q?img alt="" src="file:///C:/DOCUME~1/cail/LOCALS~1/Temp/52W[C~~FFQ[27)18U93ZOWB.gif" sysface="111" />
vczh.Iskandar<vczh@163.com>  19:03:04
criticalsection是递归?br /> 
同一个线E可以enter两次
 
都没问题
 
leave两次
 
VCZH._丝数组[5](110086478)  19:03:28
sscanf 的性能比较差?
vczh.lsbandar(14735407)  19:03:40
q可?nbsp;
hzcv._丝数组[-1](450635425)  19:03:53
哦?递归的?
IC
VCZH._丝数组[0]<errorcpp@qq.com>  19:08:43
个h感觉
可递归?br />是一个大?br />vczh.Iskandar<vczh@163.com>  19:11:32
有什么好?br /> 
你要是当她不能递归
 
那就跟别的一样了
 
坑只会更?br /> 
ooseven(147340642)  19:12:57
同一个线E下什么场景会Dq箋甌锁两ơ?
VCZH._丝数组[5](110086478)  19:13:08
parse一个IP地址Q有没有比sscanf更快?br />ooseven(147340642)  19:13:19
同一U程下的E序不都是按序来的吗?
vczh.Iskandar<vczh@163.com>  19:13:29
可以递归的锁
 
h可组合?br /> 
写v代码省心多了
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:14:13
很多?br />ooseven(147340642)  19:14:16
我的意思是_同一U程下的代码Q怎么会有q发甌锁的ZQ?br />vczh.Iskandar<vczh@163.com>  19:14:23
不会
 
但是你可以申请他两次
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:14:50
h
Yaoxin(7936511)  19:14:43
 比如插入一个|q个插入代码中又要算长度?nbsp;
ooseven(147340642)  19:14:44
有啥好处呢?
vczh.Iskandar<vczh@163.com>  19:14:46
人懒不能怪工?br /> 
ooseven(147340642)  19:15:15
甌锁两ơ有啥好处?
vczh.Iskandar<vczh@163.com>  19:15:22
q个?br /> 
譬如说我一个类的所有函?br /> 
都申请了那个?br /> 
l果有一?br /> 
q种设计q是很常见的?br /> 
我一个函数要调用另一个函C
 
省点代码
 
你用criticalsection
 
vczh.lsbandar(14735407)  19:15:49
可以递归 
ooseven(147340642)  19:15:50
了解
vczh.Iskandar<vczh@163.com>  19:15:52
׃会自己锁死自׃
 
ooseven(147340642)  19:15:57
q样也行
Q?br />vczh.lsbandar(14735407)  19:16:06
避免你写出傻逼的死锁E序 
q几乎是必须?nbsp;
ooseven(147340642)  19:16:23
啥啊Q这是大bug?br />vczh.Iskandar<vczh@163.com>  19:16:26
不是
 
vczh.lsbandar(14735407)  19:16:32
特别是你只用scope的时?nbsp;
vczh.Iskandar<vczh@163.com>  19:16:32
criticalsection
 
是Z让你q么用的
 
q有Qwindows有些东西是有own的概늚
 
ooseven(147340642)  19:16:54
如果q不bugQ允许这L设计的话Q那么锁两次也不够啊
vczh.Iskandar<vczh@163.com>  19:16:54
譬如mutex
 
你一个线E得C一个mutex
 
q个mutex挂在你的线E下面了
 
q个时候你可以不断地得到她
 
也是递归?br /> 
但是event没有owner
 
所以对于一个autoresetevent
 
vczh.lsbandar(14735407)  19:17:26
递归锁是重要Ҏ?nbsp;
vczh.Iskandar<vczh@163.com>  19:17:27
你连lwait两次
 
׃傻?br /> 
不然你觉得ؓ什么windows会搞么多?br /> 
其实他们是不一L
 
ooseven(147340642)  19:18:08
一般同一个类里的函数我都会设计一个参?nbsp;void process(..., bool isLock = true);
vczh.Iskandar<vczh@163.com>  19:18:14
何苦?br /> 
你就用criticalsection
 
无论如何enter一?br /> 
多省?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  19:18:53
ooseven(147340642)  19:18:08
一般同一个类里的函数我都会设计一个参?nbsp;void process(..., bool isLock = true);

q个思\不错h?br />ooseven(147340642)  19:18:42
那两ơ也不够用啊
VCZH._丝数组[0]<errorcpp@qq.com>  19:19:01
但是出错搞v来也更加苦g
vczh.Iskandar<vczh@163.com>  19:18:47
不是两次
 
vczh.lsbandar(14735407)  19:18:50
傻?nbsp;
vczh.Iskandar<vczh@163.com>  19:18:53
是不受限制的
 
你enter100?br /> 
也没问题
 
vczh.lsbandar(14735407)  19:18:58
你想什么呢?nbsp;
ooseven(147340642)  19:19:02
哦,了解?br />vczh.Iskandar<vczh@163.com>  19:19:03
谁他妈会有个2
 
只要你也leav 100ci好?br /> 
?
 
ooseven(147340642)  19:19:13
今天又有收获Q哈
vczh.Iskandar<vczh@163.com>  19:19:15
q你要l个上限
 
那也得是9Q?br /> 
ooseven(147340642)  19:19:57
windows下所有的锁都是同一U程下不锁吗Q?br />vczh.lsbandar(14735407)  19:19:58
一定要有递归?nbsp;
用v来才舒服 
vczh.Iskandar<vczh@163.com>  19:20:34
不是
 
event׃?#8220;?#8221;
 
递归一下就所思自׃
 
semaphore也不是递归?br /> 
所以semaphore(max=1)q不{于mutex
 
而criticalsection和mutex的区别是
 
vczh.Iskandar<vczh@163.com>  19:21:39
cs带spin而且不能跨进E?br /> 
vczh.lsbandar(14735407)  19:21:52
凡是信号模型?nbsp;
都是不能重入?nbsp;
vczh.Iskandar<vczh@163.com>  19:22:12
而semaphore(max=1)勉强跟auto reset event一?br /> 
vczh.lsbandar(14735407)  19:22:19
比如vc的例?nbsp;
vczh.Iskandar<vczh@163.com>  19:22:21
但是auto reset只是普通event的一个属?br /> 
所以这些东襉K是不能互相替代的
 
vczh.lsbandar(14735407)  19:22:38
但是所有的资源锁都能重?nbsp;
ooseven(147340642)  19:22:51
我基本只用Cristalsection
vczh.lsbandar(14735407)  19:22:52
q有是 
cs只能匿名 
vczh.Iskandar<vczh@163.com>  19:23:02
用cs你就不需要islock参数了,直接q掉?br /> 
随便你锁
 
从未?#8207;̶q?#8234;(815330718)  19:23:12
加锁两次,p解锁两次
vczh.Iskandar<vczh@163.com>  19:23:41
解锁两次׃?br /> 
不就是把一个变量从1讄??br /> 
会有多慢
 
Q?br /> 
ooseven(147340642)  19:24:36
我只加锁,不管解锁Q解锁都交给析构函数?br />从未?#8207;̶q?#8234;(815330718)  19:24:41
我是说锁 重入.
vczh.Iskandar<vczh@163.com>  19:24:52
卧槽
 
加锁跟解?br /> 
当然是构造函C?br /> 
析构函数一个了
 
你居?br /> 
ooseven(147340642)  19:25:12
我是说不手动解锁
从未?#8207;̶q?#8234;(815330718)  19:25:44
那你手动加锁...加了两次,只能解锁一ơ了..
ooseven(147340642)  19:26:00
不会啊,构造两ơ,当然析构两?br />AutoLock Lock(Cristalsection);
以后׃了
vczh.Iskandar<vczh@163.com>  19:26:46
所以你那个islock参数
 
p么干掉吧
 
ooseven(147340642)  19:27:04
嗯,以前q不知道有这Ҏ?br />VCZH._丝数组[0]<errorcpp@qq.com>  19:29:46
condition ?nbsp;mutex
分别适应的场?br />
今天他又学了不少东西
膜拜
vczh.Iskandar<vczh@163.com>  19:29:53
condition variable是一个牛逼的东西
 
一定要掌握
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:30:34
我们q边队友 wait_condition之前
vczh.Iskandar<vczh@163.com>  19:30:15
回家
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:30:41
不锁mutex
从未?#8207;̶q?#8234;(815330718)  19:30:21
condition variable 不会
 

VCZH._丝数组[0]<errorcpp@qq.com>  19:30:48
求解?br />vczh.Iskandar<vczh@163.com>  19:30:28
不是?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  19:30:54
q是不要吐槽
vczh.Iskandar<vczh@163.com>  19:30:37
condition是和cs
 
一L的啊
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:31:15
不是和mutex一L?br />api参数都是q样
vczh.lsbandar(14735407)  19:31:10
和event一?nbsp;
vczh.Iskandar<vczh@163.com>  19:31:11
api名字我忘了但是大概就?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  19:31:33
condition_wait的时候要l一个mutexq去
vczh.Iskandar<vczh@163.com>  19:31:25
WaitForConditionVariableCS/SRW(condition, cs/srw)
 
没有mutex
 
回家
 
VCZH._丝数组[0]<errorcpp@qq.com>  19:32:14
?


condition是和cs一L很爽Q应为CS可以不需要在mutex保护?/div>

Enic 2013-01-31 19:33 发表评论
]]>虚基cȝ讨论http://www.shnenglu.com/Error/articles/197634.htmlEnicEnicWed, 30 Jan 2013 08:57:00 GMThttp://www.shnenglu.com/Error/articles/197634.htmlhttp://www.shnenglu.com/Error/comments/197634.htmlhttp://www.shnenglu.com/Error/articles/197634.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/197634.htmlhttp://www.shnenglu.com/Error/services/trackbacks/197634.html
VCZH._丝数组[0]<errorcpp@qq.com>  16:27:19
class IRoot  没有虚析?br />class Lv1  有虚析构
class Lv2

root是根Q下面都是承关p?br />q样有风险没Q?br />vczh.Iskandar<vczh@163.com>  16:25:41
q样你delete IRoot
 
?br /> 
׃会运行析构函?br /> 
C++一切没有父cȝc,只要是你打算被承,都要p析构函数
 
董一?65226002)  16:26:10
让他们全部private l承自IRoot

VCZH._丝数组[0]<errorcpp@qq.com>  16:28:04
有没啥好办法

我不惛_徐基cM
搞函C实现
好丑
vczh.Iskandar<vczh@163.com>  16:26:28
privatel承也没?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:28:29
那怎么?br />vczh.Iskandar<vczh@163.com>  16:26:37
说不定那个IRoot是那个c自q出去?br /> 
而且q你private?br /> 
dynamic_cast也是可以用的
 
董一?65226002)  16:26:55
那无所谓了?br />
vczh.Iskandar<vczh@163.com>  16:26:56
你只要在IRoot写一个空的虚析构函数p?br /> 
别的什么都不需要干
 
VCZH._丝数组[0]<errorcpp@qq.com>  16:29:01
但是q样如果跨模?br />董一?65226002)  16:27:24
如果你caseCzc,那自然就会调用正的析构函数?br />
VCZH._丝数组[0]<errorcpp@qq.com>  16:29:19
iroot相当于编译了两次
vczh.xyz_?54438159)  16:27:44

vczh.Iskandar<vczh@163.com>  16:27:46
不会?br /> 
董一?65226002)  16:27:52
准确的说Q析构函数要么是公有虚的Q或者protected非虚?br />
vczh.Iskandar<vczh@163.com>  16:27:53
你把实现写在了cpp文g里面
 
׃会被~译两次?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:30:06
那如果两个模?br />同时需要iroot
董一?65226002)  16:28:32
只要你不用基cLdeletezc,那析构函C需要是虚的
VCZH._丝数组[0]<errorcpp@qq.com>  16:30:26
p都加入cpp
C++的什么东襉K差一点,不完啊
VCZH._丝数组[5](110086478)  16:31:03
准确的说Q析构函数要么是公有虚的Q或者protected非虚?br />effective上看到过Q后一U一般什么时候用?nbsp;
vczh四号_丝(342775210)  16:31:14
加一个虚析构,又没?br />VCZH._丝数组[5](110086478)  16:31:49
其实可以让编译器做的 
vczh.Iskandar<vczh@163.com>  16:32:06
加一个虚析构,又没?nbsp; 
VCZH._丝数组[5](110086478)  16:32:25
只要有承,~译器就让析够,多省?nbsp;
董一?65226002)  16:32:42
后一U就是,你永q不能用基类指针来deletezc?br />
所以析构函C׃用是虚的?br />VCZH._丝数组[5](110086478)  16:33:11
比如Q场景?看得忘了 
董一?65226002)  16:34:29
比如你有一大组不同的接口,class A : public I1, public I2, public I3{}
你有写函数是q样子的Qfun(I1* i) fun2(I2* i) fun3(I3* i)
VCZH._丝数组[0]<errorcpp@qq.com>  16:37:29
当智能指针遇到这个事?br />vczh.Iskandar<vczh@163.com>  16:35:33
我所有的c都l承自Object
 
董一?65226002)  16:35:36
你的fun只不q是调用几个接口Q而不会管理实际对象的生命周期Q那q样设计是合理?br />
vczh.Iskandar<vczh@163.com>  16:35:38
所有的接口都承自Interface
 
他们都有虚析构函?br /> 
我ؓ了解册个问?br /> 
然后没问题?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:38:12
嗯,惌样一个对?br />作ؓ多个接口
扩散C同模?br />偶就用shared_ptr?br />老残搞不定复杂的生命周期理
VCZH._丝数组[5](110086478)  16:37:00
java?nbsp;
vczh四号_丝(342775210)  16:37:12
真的是闲的蛋疼啊
加一个虚析构,又能怎么?br />VCZH._丝数组[0]<errorcpp@qq.com>  16:39:29
好丑的,Q,
VCZH._丝数组[5](110086478)  16:37:36
其实我们游戏服务器也是用一个object?nbsp;
vczh四号_丝(342775210)  16:37:43
只要到l承,必虚析构
VCZH._丝数组[0]<errorcpp@qq.com>  16:40:25
比如你动态库
提供某个接口
董一?65226002)  16:38:38
哎,比如你的接口本本来就只是几个函数。连成员都没有,那干嘛还加个虚析构,d一个指针大呢

VCZH._丝数组[0]<errorcpp@qq.com>  16:40:49
然后又是昄加蝲
董一?65226002)  16:38:58
其是编译器对这U类q能够直接优化掉

VCZH._丝数组[0]<errorcpp@qq.com>  16:41:16
q样虽然那个虚析构是I的
但是实际?br />exe和dll里边
都有一份实?br />我理解的没错?br />我觉得这个现?br />不好
vczh.xyz_?54438159)  16:40:32

VCZH._丝数组[0]<errorcpp@qq.com>  16:43:02
囧,我再d好理解理解去
应该如果只用指针
是可以只有一份实现的
董一?65226002)  16:41:24
v大,你既然所有类l承自objectQ那你在做ui的时候,大可以模范qt了,在基c里加一个slot的概念,所有ui对象都可以接收发过来的消息?br />
跨dll千万要心了,你别在dll里new东西Q在另一个dll里deleteQ会出错?br />
VCZH._丝数组[0]<errorcpp@qq.com>  16:44:22
跨dll千万要心了,你别在dll里new东西Q在另一个dll里deleteQ会出错?br />
q个不一定出?br />和运行库相关
董一?65226002)  16:42:57
嗯,对的Q但q是一个当地晦涩的角落

一h明白Q最好的办法是避?br />ooseven(147340642)  16:43:08
我都是用heapallocQ没有这个顾?br />VCZH._丝数组[0]<errorcpp@qq.com>  16:45:15

话说vs2012以后
q行库就是用heapalloc?br />所?br />q个问题Q不是问题了
ooseven(147340642)  16:43:51
是吗Q?br />你确定?
VCZH._丝数组[0]<errorcpp@qq.com>  16:45:58
如果我没记错
好像在哪看到q?br />VCZH._丝数组[5](110086478)  16:44:19
exe和dll会各有一份? 
ooseven(147340642)  16:44:43
我重载了所有的容器Q传入一个自qAllocator<_Kty>
q个Allocator<_Kty>Q里面就是heapalloc
VCZH._丝数组[0]<errorcpp@qq.com>  16:47:24
昄加蝲dll
是_dll的代码和exe的代码是分开?br />假设exe和dll里边有相同的对象
那么他们必须都包含虚基类的完整实?br />也就是说虚基cdexe和dll里边
VCZH._丝数组[0]<errorcpp@qq.com>  16:48:29
分别都编译了一?br />那么exe和dll里边关于虚基cȝ机器?br />有相同的两?br />
vczh四号_丝(342775210)  16:47:28
动态链接啊,怎么会有两䆾代码
VCZH._丝数组[0]<errorcpp@qq.com>  16:49:41
exe一?nbsp;dll一?br />vczh四号_丝(342775210)  16:47:50
除非你dll是静态链接的
然后有蛋疼的静态链接exe了一?br />VCZH._丝数组[0]<errorcpp@qq.com>  16:49:56
不然肯定链接错误
我们遇到q一ơbug
和这个类?br />是单例模式
在exe和dll的地址
不一?br />后来发现是哪个instance
VCZH._丝数组[0]<errorcpp@qq.com>  16:51:06
在exe和dll各有一份实?br />VCZH._丝数组[5](110086478)  16:49:06
 你那是export?nbsp;
不用两䆾代码 
一份就?nbsp;
VCZH._丝数组[0]<errorcpp@qq.com>  16:51:28
只有一份编译都q不?br />VCZH._丝数组[5](110086478)  16:49:37
直接exportpQ单?nbsp;
可以 
VCZH._丝数组[0]<errorcpp@qq.com>  16:51:56
那要把单利放到dll
然后隐式加蝲
不然q边exe链接错误
VCZH._丝数组[5](110086478)  16:50:20
是的 
?nbsp;
好牛?nbsp;
vczh.Iskandar<vczh@163.com>  16:50:33
董一?013-01-30 16:41:24v大,你既然所有类l承自objectQ那你在做ui的时候,大可以模范qt了,在基c里加一个slot的概念,所有ui对象都可以接收发过来的消息?br />
上一ơ我也是q么做的Q这ơ戒?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:52:50
为啥
vczh.Iskandar<vczh@163.com>  16:50:50
singleton
 
VCZH._丝数组[0]<errorcpp@qq.com>  16:52:58
不是很爽?br />vczh.Iskandar<vczh@163.com>  16:51:02
Z是肯定的
 
VCZH._丝数组[0]<errorcpp@qq.com>  16:53:15

vczh.Iskandar<vczh@163.com>  16:51:21
你暴露个变量出来
 
VCZH._丝数组[0]<errorcpp@qq.com>  16:53:45
单例是恶?br />vczh.Iskandar<vczh@163.com>  16:51:41
都是要做成函数的
 
vczh四号_丝(342775210)  16:51:42
我发?public成员是bug器
vczh.Iskandar<vczh@163.com>  16:52:04
gacui很少有public的变?br /> 
vczh四号_丝(342775210)  16:52:31
我刚才秒了一下我们的代码,发C个内存泄?br />我都不敢看了
vczh.xyz_?54438159)  16:52:46
q个。。?br />VCZH._丝数组[5](110086478)  16:53:03
太厉害了 
vczh.Iskandar<vczh@163.com>  16:53:07
发邮件喷
 
vczh四号_丝(342775210)  16:53:13
我才不喷
VCZH._丝数组[0]<errorcpp@qq.com>  16:55:21
vczh四号_丝(342775210)  16:52:31
我刚才秒了一下我们的代码,发C个内存泄?br />我都不敢看了

你们qx怎么查内存溢?nbsp;内存错误 内存泄漏什么的Q?br />vczh四号_丝(342775210)  16:53:32
我们qx靠h肉看
VCZH._丝数组[0]<errorcpp@qq.com>  16:55:38
vczh四号_丝(342775210)  16:53:13
我才不喷

喷了p解决Q,Q解军_要加班,Q,要死Q,Q?br />vczh四号_丝(342775210)  16:53:44
?br />vczh.Iskandar<vczh@163.com>  16:53:46
看source controlQ谁写的谁解?br /> 
vczh四号_丝(342775210)  16:53:55
不是我写?br />vczh.Iskandar<vczh@163.com>  16:54:05
赖都赖不?br /> 
vczh四号_丝(342775210)  16:54:06
p?br />VCZH._丝数组[0]<errorcpp@qq.com>  16:56:22
我估计这个问题该h牉|一模块,Q,
vczh.Iskandar<vczh@163.com>  16:54:26
visual studio打开以下咦annotate哪一行谁checkinq去的直接暴露出?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:56:33
不然你就爽快的改了喷人,Q,
SundayTooFar(5048977)  16:54:31
上个目Q?nbsp;我秒了一下rpc协议?nbsp;l果发现几十个严重问题?nbsp;那才闹腾Q?nbsp;整个目l加班了两周。?br />vczh.Iskandar<vczh@163.com>  16:54:43
= =
 
webE序
 
你不招vczh
 
׃能用C++来写Q?br /> 
VCZH._丝数组[5](110086478)  16:55:00
 
vczh.Iskandar<vczh@163.com>  16:55:12
用C++来处理字W串
 
需要有坚定的信?br /> 
vczh.xyz_?54438159)  16:55:20
各位巨巨都是眼?br />vczh.Iskandar<vczh@163.com>  16:55:20
每一行代码都要充满智?br /> 
VCZH._丝数组[0]<errorcpp@qq.com>  16:57:26
搞死?br />vczh四号_丝(342775210)  16:55:31
要改的代?也不?br />只是我不愿意?br />VCZH._丝数组[0]<errorcpp@qq.com>  16:57:49
上午问了没h理我Qasn1有熟的没
vczh四号_丝(342775210)  16:55:43
改了,他又会改回来
vczh.Iskandar<vczh@163.com>  16:55:44
先改后喷
 
没有
 


Enic 2013-01-30 16:57 发表评论
]]>
CreateFile WriteFile 都会正常,但是l果异常http://www.shnenglu.com/Error/articles/166096.htmlEnicEnicMon, 20 Feb 2012 15:49:00 GMThttp://www.shnenglu.com/Error/articles/166096.htmlhttp://www.shnenglu.com/Error/comments/166096.htmlhttp://www.shnenglu.com/Error/articles/166096.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/166096.htmlhttp://www.shnenglu.com/Error/services/trackbacks/166096.html
 南昌-贝贝(1125591)  23:37:59
我写的文件下载模?他们是用不?
q说我写的有问题,我忙没时间关心他?
  他们弄了一个下午没弄好
l果拿到我手?一下就火了
保存的文件名里面的冒?br />深圳-Enic<errorcpp@qq.com>  23:38:51
Q,Q?br />囧,Q,
南昌-贝贝(1125591)  23:39:08
q种错我惌里应该没多少犯得出来?br />徏-双生(329015523)  23:39:26
一个给一巴掌Q,再问问会不会?br />深圳-Enic<errorcpp@qq.com>  23:39:15
q是多少q道行的错误
南昌-贝贝(1125591)  23:39:39
搞编E的不知道文件名不能含有冒号
q几个h在那? 不知道所以然
深圳-Enic<errorcpp@qq.com>  23:43:35
q个我好也没怎么留意q?br />不过应该可以ҎGetLastError
发现?br />南昌-贝贝(1125591)  23:44:08
有冒?nbsp;CreateFile  WriteFile 都会正常
不过会写到天上去
所以他们调不出?q个估计没多h知道
深圳-Enic<errorcpp@qq.com>  23:44:49
恩这个要C来,不然以后说不准哪天忘C
徏-双生(329015523)  23:45:24
不然哪天你也被骂了。。?/div>


Enic 2012-02-20 23:49 发表评论
]]>
qlmutex的最大数量,到异常的深入探讨QVC专业?Q?/title><link>http://www.shnenglu.com/Error/articles/163374.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Sun, 01 Jan 2012 18:10:00 GMT</pubDate><guid>http://www.shnenglu.com/Error/articles/163374.html</guid><wfw:comment>http://www.shnenglu.com/Error/comments/163374.html</wfw:comment><comments>http://www.shnenglu.com/Error/articles/163374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Error/comments/commentRss/163374.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Error/services/trackbacks/163374.html</trackback:ping><description><![CDATA[<div><div>深圳-Enic<errorcpp@qq.com> 0:46:50 </div><div>我来试试最多能有几个锁 </div><div>吉林-伙  0:47:11 </div><div>我觉得好多好?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 0:50:51 </div><div>99999貌似不压?nbsp;</div><div>吉林-伙  0:51:07 </div><div>q个mutex是内核管理的 </div></div><div><div><div> 吉林-伙  0:51:57<br />了 不瞎扯了<br />吉林-伙  0:51:58<br />呵呵<br />吉林-伙  0:52:11<br />我慢慢学?br />深圳-Enic<errorcpp@qq.com> 0:52:09<br /><img src="file:///D:\Program Files (x86)\Tencent\QQ\PersonalData\85126585\Image\]m~]nx{9u(8r@[5_(@_dtze.jpg" alt="" /><br />q样异怺<br />深圳-Enic<errorcpp@qq.com> 0:52:17<br />偶来看看啥异?br />吉林-伙  0:52:29<br />内存不够?br />吉林-伙  0:52:27<br />你这是new太多?br />吉林-伙  0:53:02<br />异常?nbsp;outofmemory<br />吉林-伙  0:53:06<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\X@8}U9MLE}EBUE273)]9PGF.gif" sysface="13" alt="" /><br />深圳-Enic<errorcpp@qq.com> 0:53:07<br />应该不是<br />深圳-Enic<errorcpp@qq.com> 0:54:21<br />被你说中?br />深圳-Enic<errorcpp@qq.com> 0:54:27<br />bad allocation<br />吉林-伙  0:54:39<br />呵呵<br />吉林-伙  0:54:53<br />q样看来<br />吉林-伙  0:54:57<br />只要内存够用<br />深圳-Enic<errorcpp@qq.com> 0:54:57<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\[{3Z]U}(T(K%$A2[_$5RF`T.gif" alt="" />最q发现异常比q回值好用多?br />深圳-Enic<errorcpp@qq.com> 0:55:10<br />mutex数量Q这个问题我以后不应该纠l了<br />吉林-伙  0:55:17<br />p甌好多<br />深圳-Enic<errorcpp@qq.com> 0:55:24<br />说到底就是一条汇~指?br />深圳-Enic<errorcpp@qq.com> 0:55:47<br />操作pȝ会缓冲下 id啥的<br />深圳-Enic<errorcpp@qq.com> 0:56:19<br />昨天一个多U程的代码,用了三方U程库,U程中不敢直接调用exitthread<br />吉林-伙  0:56:35<br />怕内存泄Ԍ<br />深圳-Enic<errorcpp@qq.com> 0:56:44<br />l果一个错误先直接退出线E,q箋改了几层函数<br />深圳-Enic<errorcpp@qq.com> 0:56:51<br />voidҎbool<br />深圳-Enic<errorcpp@qq.com> 0:57:09<br />后来 直接throw 一?br />深圳-Enic<errorcpp@qq.com> 0:57:19<br />U程d数catch一?br />深圳-Enic<errorcpp@qq.com> 0:57:28<br />nnd  多简z啊<br />吉林-伙  0:57:38<br />异常处理影响效率?br />深圳-Enic<errorcpp@qq.com> 0:57:51<br />比每个函数后面跟一个assert 一个if舒服多了<br />吉林-伙  0:58:04<br />呵呵<br />深圳-Enic<errorcpp@qq.com> 0:58:12<br />对了<br />吉林-伙  0:58:09<br />泡鱼告诉我<br />吉林-伙  0:58:21<br />你用异常处理 那是你代码写的有问题<br />吉林-伙  0:58:31<br />正常情况下不用try catch<br />深圳-Enic<errorcpp@qq.com> 0:58:36<br />异常处理不媄响正常流E的效率?br />吉林-伙  0:58:53<br />影响<br />深圳-Enic<errorcpp@qq.com> 0:58:55<br />那确实是有问题,发现一个不可恢复的错误<br />深圳-Enic<errorcpp@qq.com> 0:59:17<br />要么直接退?br />深圳-Enic<errorcpp@qq.com> 0:59:23<br />要么泡异?br />深圳-Enic<errorcpp@qq.com> 0:59:39<br />囧,Q,<br /><br />boost的正?br />深圳-Enic<errorcpp@qq.com> 0:59:46<br />q么说来是狗屎?br />吉林-伙  0:59:50<br />more effective c++ 里好像说了异常处理的效率问题?br />深圳-Enic<errorcpp@qq.com> 0:59:56<br />到处异常Q基本不靠返回?br />深圳-Enic<errorcpp@qq.com> 1:00:02<br />我看看汇~代?br />吉林-伙  1:00:07<br />?br />吉林-伙  1:00:15<br />x异常处理的原?br />深圳-Enic<errorcpp@qq.com> 1:00:24<br />我觉得没?br />深圳-Enic<errorcpp@qq.com> 1:00:31<br />~译器完全可以处理吧<br />吉林-伙  1:01:12<br />你看看汇~代?br />吉林-伙  1:02:27<br />l测试,在CQ+里面加个try以后性能下降了百多?br />深圳-Enic<errorcpp@qq.com> 1:02:33<br />多了几个jmp<br />深圳-Enic<errorcpp@qq.com> 1:02:42<br />你测q了Q?br />吉林-伙  1:03:09<br />你用for 然后里边写个try catch<br />吉林-伙  1:04:13<br />我觉得一定会低效?br />吉林-伙  1:05:20<br />因ؓZ捕捉到异总?br />吉林-伙  1:05:24<br />仍然能堆栈^?br />深圳-Enic<errorcpp@qq.com> 1:05:28<br />try<br />{<br />00EC2390  mov         byte ptr [ebp-4],1<br />int i = 0;<br />00EC2394  mov         dword ptr [i],0<br />}<br />00EC239B  jmp         __catch$_wmain$0+14h (0EC23B1h)<br />catch(...)<br />{<br />int i = 0;<br />00EC239D  mov         dword ptr [i],0<br />}<br />00EC23A4  mov         dword ptr [ebp-4],0<br />00EC23AB  mov         eax,offset __tryend$_wmain$1 (0EC23B8h)<br />00EC23B0  ret<br /><br />00EC23B1  mov         dword ptr [ebp-4],0<br />}<br />00EC23B8  jmp         wmain+51h (0EC2381h)<br />00EC23BA  jmp         __catch$_wmain$4+38h (0EC24C3h)<br />吉林-伙  1:05:30<br />正常l束E序<br />吉林-伙  1:05:40<br />必要加入一些数据结?br />深圳-Enic<errorcpp@qq.com> 1:05:42<br />是一个长jmp <br /><div><div>深圳-Enic<errorcpp@qq.com> 1:05:50 </div><div>~译器干?nbsp;</div><div>吉林-伙  1:05:59 </div><div>对啊 </div><div>深圳-Enic<errorcpp@qq.com> 1:06:13 </div><div>如果没有异常Q直接jmp到后面了 </div><div>深圳-Enic<errorcpp@qq.com> 1:06:23 </div><div>多了这一条指?nbsp;</div><div>吉林-伙  1:06:33 </div><div>你看的是表面 </div><div>吉林-伙  1:06:39 </div><div>jmp之后呢? </div><div>吉林-伙  1:06:54 </div><div>正常 stdcall的函?是在函数内部堆栈q?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:07:01 </div><div>之后是后面正常的代码 </div><div>吉林-伙  1:07:02 </div><div>q个你不否认?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:07:07 </div><div>jmp没有call?nbsp;</div><div>吉林-伙  1:07:21 </div><div>你先别看那个汇编 </div><div>吉林-伙  1:07:25 </div><div>听我?nbsp;</div><div>吉林-伙  1:07:26 </div><div>呵呵 </div><div>深圳-Enic<errorcpp@qq.com> 1:07:29 </div><div>?nbsp;</div><div>吉林-伙  1:07:37 </div><div>正常我们调用一个函?nbsp;</div><div>吉林-伙  1:07:50 </div><div>是stdcall q个函数执行完毕的时?nbsp;</div><div>吉林-伙  1:08:02 </div><div>要堆栈^衡一?例如ret 8 </div><div>吉林-伙  1:08:33 </div><div>q样才能保证函数退出后依然能正执行代?nbsp;</div><div>吉林-伙  1:08:43 </div><div>如果我们的函C存在异常 </div><div>吉林-伙  1:08:58 </div><div>执行不到ret 8?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:09:13 </div><div>我说的是正常程 </div><div>吉林-伙  1:09:23 </div><div>? </div><div>吉林-伙  1:09:28 </div><div>懂你的意思了 </div><div>深圳-Enic<errorcpp@qq.com> 1:09:50 </div><div>我用异常是难得一层一层加q回值判断了 </div><div>吉林-伙  1:09:48 </div><div>不管是什么流E?nbsp;</div><div>吉林-伙  1:10:20 </div><div>是不是要先弄个数据结构来保存下一些信息呢Q?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:10:32 </div><div>是throw?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:10:44 </div><div>throw是一个call?好像 </div><div>深圳-Enic<errorcpp@qq.com> 1:10:48 </div><div>我去看看 </div><div>吉林-伙  1:10:50 </div><div>?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:12:11 </div><div>                throw(i);</div><div>002C237B  mov         eax,dword ptr [i] </div><div>002C237E  mov         dword ptr [ebp-148h],eax </div><div>002C2384  push        offset __TI1H (2D8540h) </div><div>002C2389  lea         ecx,[ebp-148h] </div><div>002C238F  push        ecx  </div><div>002C2390  call        @ILT+1225(__CxxThrowException@8) (2C14CEh)  </div><div>深圳-Enic<errorcpp@qq.com> 1:12:15 </div><div>是?nbsp;</div><div>吉林-伙  1:12:24 </div><div>?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:13:02 </div><div>囧,Q, </div><div>深圳-Enic<errorcpp@qq.com> 1:13:07 </div><div>汇编果然是好东西 </div><div>深圳-Enic<errorcpp@qq.com> 1:13:55 </div><div>看了评测 </div><div>深圳-Enic<errorcpp@qq.com> 1:14:14 </div><div>win上的异常要损?30?nbsp;</div><div>吉林-伙  1:14:14 </div><div>什么评? </div><div>深圳-Enic<errorcpp@qq.com> 1:14:16 </div><div>性能 </div><div>深圳-Enic<errorcpp@qq.com> 1:14:24 </div><div>异常发生 </div><div>吉林-伙  1:14:38 </div><div>不发生呢Q?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:14:46 </div><div>1% </div><div>吉林-伙  1:14:50 </div><div>不发生就多点内存Q?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:14:51 </div><div>Linux? </div><div>吉林-伙  1:14:57 </div><div>那就不错?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:15:00 </div><div>aix比不用还要快一?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:15:02 </div><div>?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:15:37 </div><div>应该是运行库觉得?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:15:44 </div><div>q个玩深?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:15:49 </div><div>艹,搞不定了 </div><div>吉林-伙  1:16:05 </div><div>我给你翻L威书c吧 </div><div>吉林-伙  1:16:07 </div><div>哈哈 </div><div>吉林-伙  1:16:45 </div><div>?今天书翻不了?nbsp;</div><div>吉林-伙  1:16:49 </div><div>让隔壁的人拿C </div><div>吉林-伙  1:16:59 </div><div>more effective c++ </div><div>吉林-伙  1:17:07 </div><div>q里专门讲了异常 </div><div>深圳-Enic<errorcpp@qq.com> 1:17:09 </div><div>http://blog.codingnow.com/2005/12/cpp_exception.html </div><div>深圳-Enic<errorcpp@qq.com> 1:17:35 </div><div>我有印象那书 </div><div>深圳-Enic<errorcpp@qq.com> 1:17:55 </div><div>但是在汇~面前是没有U密的,Q,囧,Q,明天好好分析?nbsp;</div><div>深圳-Enic<errorcpp@qq.com> 1:18:16 </div><div>当时讲师前半D一直在?SEH Q和 C++ 关系不大。我本以Z?C++ 异常的实现的Q我个h以前研究q一些,很有兴趣听听人家的理解,l果没有听到。据说后来那个会场最l吵了v来,很遗憾没有领略那个盛?:)</div><div><div><div> 吉林-伙  1:19:45<br />呵呵<br />深圳-Enic<errorcpp@qq.com> 1:21:01<br />E序中大量用异常的Q绝对不是ؓ了提高程序的E_性,或是可笑的提高可L,那都是忽悠外行的。用异常原因只有一个:hQ?br /><br /><br />深圳-Enic<errorcpp@qq.com> 1:21:08<br />p赞同Q,Q?br />深圳-Enic<errorcpp@qq.com> 1:21:14<br />惛_些代?br />吉林-伙  1:21:19<br />呵呵<br />吉林-伙  1:21:29<br />泡鱼是个高手啊<br />吉林-伙  1:21:34<br />可惜?br />吉林-伙  1:21:41<br />q小子L丢一句就?br />吉林-伙  1:22:48<br />按道理来讲c++ happy path的时?nbsp;应该效率高的?br />吉林-伙  1:22:56<br />毕竟不用q回值判断了<br />深圳-Enic<errorcpp@qq.com> 1:23:10<br />看异常实C<br />深圳-Enic<errorcpp@qq.com> 1:23:25<br />q个是运行期间的事g<br />吉林-伙  1:23:30<br />?br />深圳-Enic<errorcpp@qq.com> 1:23:43<br />throw一下要Lcatch<br />深圳-Enic<errorcpp@qq.com> 1:23:47<br />估计旉在q里<br />吉林-伙  1:24:03<br />q个?nbsp;unhappy?br />深圳-Enic<errorcpp@qq.com> 1:24:05<br />我刚刚的例子是给~译器优化掉?br />深圳-Enic<errorcpp@qq.com> 1:24:13<br />直接call?br />吉林-伙  1:24:13<br />unhappy path<br />吉林-伙  1:24:15<br />?nbsp;?br />深圳-Enic<errorcpp@qq.com> 1:24:21<br />q样应该?开销<br />吉林-伙  1:24:27<br />用g++?br />深圳-Enic<errorcpp@qq.com> 1:24:47<br />vs用的手?br />吉林-伙  1:24:51<br />看看不优化是什么样?br />吉林-伙  1:25:11<br />vs关闭优化功能<br />深圳-Enic<errorcpp@qq.com> 1:25:13<br />应该是和ssh那一套差不多<br />吉林-伙  1:25:15<br />我心里还是不t实?br />深圳-Enic<errorcpp@qq.com> 1:25:33<br />@ILT+1225(__CxxThrowException@8) (2C14CEh)<br />深圳-Enic<errorcpp@qq.com> 1:25:38<br />又看了下<br />深圳-Enic<errorcpp@qq.com> 1:25:42<br />call的是q个<br />吉林-伙  1:26:02<br />传了两个参数<br />深圳-Enic<errorcpp@qq.com> 1:26:09<br />你拿od调看?br />吉林-伙  1:26:17<br />我没OD?br />吉林-伙  1:26:19<br />公司电脑<br />深圳-Enic<errorcpp@qq.com> 1:26:27<br />搞驱动的Q,Q?br />深圳-Enic<errorcpp@qq.com> 1:26:32<br />没ODQ?br />吉林-伙  1:26:43<br />没有?br />吉林-伙  1:26:53<br />我现在只会简单的windbg<br />吉林-伙  1:27:00<br />q是双机调试<br />吉林-伙  1:27:19<br />OD能调内核E序Q?br />深圳-Enic<errorcpp@qq.com> 1:27:43<br />那你用wdbg看看Q,Q?br />深圳-Enic<errorcpp@qq.com> 1:27:51<br />囧,Q,我这些太׃<br />吉林-伙  1:28:15<br />你弄?br />吉林-伙  1:28:24<br />我研I虚拟摄像头?br />吉林-伙  1:28:28<br />我今天晚上要弄成功共<br />深圳-Enic<errorcpp@qq.com> 1:29:37<br />恩,你成功<br /><br />我跟了一大段汇编<br />吉林-伙  1:30:11<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\X@8}U9MLE}EBUE273)]9PGF.gif" sysface="13" alt="" /><br />深圳-Enic<errorcpp@qq.com> 1:31:54<br />我决定以后还是不排斥异常<br />吉林-伙  1:32:36<br />看你对代码体U?nbsp;q有效率有没有什么特D要求了<br />吉林-伙  1:32:43<br />q东?nbsp;存在合?br />吉林-伙  1:32:51<br />必有其用武之地啊<br />深圳-Enic<errorcpp@qq.com> 1:33:03<br />实在是少些太多代码的Q,Q?br />吉林-伙  1:33:20<br />呵呵<br />深圳-Enic<errorcpp@qq.com> 1:33:23<br />你不知道Q今天我改第一个函?nbsp;最改??br />吉林-伙  1:33:30<br />不用q回?nbsp;不用断言和if<br />深圳-Enic<errorcpp@qq.com> 1:33:49<br />asio做的比较?br />深圳-Enic<errorcpp@qq.com> 1:34:10<br />一个功能提供一个异常版和一个返回值版<br />深圳-Enic<errorcpp@qq.com> 1:35:00<br />http://www.cnblogs.com/napoleon_liu/archive/2010/10/27/1862240.html<br />深圳-Enic<errorcpp@qq.com> 1:35:12<br />q个是分析异常实现机制的<br />深圳-Enic<errorcpp@qq.com> 1:35:18<br />你可以明目了</div></div></div><div>  吉林-伙  1:35:35</div><div><div>不过C太清?br />吉林-伙  1:35:32<br />以前看过<br />吉林-伙  1:35:44<br />好像是和调用堆栈有关p?br />吉林-伙  1:35:50<br />q堆栈那些<br />深圳-Enic<errorcpp@qq.com> 1:36:08<br />q些开销不会过一倍的<br />深圳-Enic<errorcpp@qq.com> 1:36:44<br />q不是异常qQ你自己写返回g栯是一层一层^衡下M<br />吉林-伙  1:37:13<br />?nbsp;但是用异怸是需要新的数据结构吗<br />吉林-伙  1:37:17<br />q多了一些开销<br />吉林-伙  1:37:51<br />现在我的水^ q不是纠l是否应该用异常的时?br />吉林-伙  1:37:51<br />呵呵<br />吉林-伙  1:38:02<br />知道个大概就行啦 慢慢来吧<br />深圳-Enic<errorcpp@qq.com> 1:38:45<br />囧,Q,<br />都是被逼的Q,Q?br />深圳-Enic<errorcpp@qq.com> 1:39:07<br />l过今天的事情,我才知道为啥要抛异常<br />深圳-Enic<errorcpp@qq.com> 1:39:38<br />你看大型项目,好几癑ֱ的函数调用,Q,<br />吉林-伙  1:39:38<br />知道今天 你才知道抛出异常是callQ?br />深圳-Enic<errorcpp@qq.com> 1:39:42<br />?br />深圳-Enic<errorcpp@qq.com> 1:39:48<br />那直接死了算?br />吉林-伙  1:40:32<br />你知道抛出异常的那个参数是干啥的不?<br />深圳-Enic<errorcpp@qq.com> 1:40:35<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\C9752(0D$AC]XTIC8MY4AOM.gif" alt="" />让你在第999层的函数调用Ҏ一个返回值退出程?br />深圳-Enic<errorcpp@qq.com> 1:40:40<br />不知?br />深圳-Enic<errorcpp@qq.com> 1:40:51<br />l果上面998层都是void<br />吉林-伙  1:40:57<br />呵呵<br />深圳-Enic<errorcpp@qq.com> 1:41:00<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\8HCCR1ND`{6ZG)4P4ECX6KO.gif" alt="" /><br />吉林-伙  1:41:04<br />你说的也有道?br />吉林-伙  1:41:15<br />q个是架构师设计的不合理了<br />吉林-伙  1:41:35<br />throw 那个参数  可以传给catch那里<br />深圳-Enic<errorcpp@qq.com> 1:41:49<br />压了两个参数<br />深圳-Enic<errorcpp@qq.com> 1:41:53<br />q有一个是?br />吉林-伙  1:42:02<br />你刚才写的是1?br />吉林-伙  1:42:17<br />你写两个<br />吉林-伙  1:42:21<br />看看是不是压了三?br />深圳-Enic<errorcpp@qq.com> 1:43:28<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\8HCCR1ND`{6ZG)4P4ECX6KO.gif" alt="" />你们家异常能一ơthrow俩参?br />吉林-伙  1:43:37<br />push        offset __TI1H (2D8540h)<br />吉林-伙  1:43:57<br />?br />吉林-伙  1:44:11<br />从来没用q两个参?br />吉林-伙  1:44:14<br />不知道是否可?br />吉林-伙  1:44:25<br />压入了一个首地址<br />吉林-伙  1:44:32<br />TI1H的首地址<br />深圳-Enic<errorcpp@qq.com> 1:44:39<br />q有一个后来跟汇编的时候好像看了啥info<br />吉林-伙  1:44:48<br />q个TI1H是什么东东呢<br />深圳-Enic<errorcpp@qq.com> 1:45:08<br />我也不知道,估计是index之类?br />深圳-Enic<errorcpp@qq.com> 1:45:17<br />要去找catch?br />吉林-伙  1:45:23<br />?br />深圳-Enic<errorcpp@qq.com> 1:45:50<br /><img src="file:///D:\Program Files (x86)\Tencent\QQ\PersonalData\85126585\Image\g$o420(`($o}2$~dp1ppzsa.jpg" alt="" /><br />吉林-伙  1:45:55<br />谢谢<br />吉林-伙  1:46:04<br />今天对异常又有了新的理解?br />深圳-Enic<errorcpp@qq.com> 1:46:19<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\8HCCR1ND`{6ZG)4P4ECX6KO.gif" alt="" />谢谢<br />吉林-伙  1:46:24<br />qthrow了一个对?br />吉林-伙  1:46:38<br />catch 那边q的对象了<br />深圳-Enic<errorcpp@qq.com> 1:46:48<br />我今天最大的收获是在云风的博客,看到了异常的本质<br />深圳-Enic<errorcpp@qq.com> 1:46:51<br />hQ,Q?br />深圳-Enic<errorcpp@qq.com> 1:47:04<br />和面向对象一PQ,<br />深圳-Enic<errorcpp@qq.com> 1:47:11<br />整个泥马是惛_懒了<br />深圳-Enic<errorcpp@qq.com> 1:47:14<br />囧,Q,<br />吉林-伙  1:47:55<br />抛出异常q边用引用也白费?br />吉林-伙  1:48:07<br />catch用引用也没用<br />吉林-伙  1:48:12<br />q是copy了一?br />深圳-Enic<errorcpp@qq.com> 1:48:31<br />q是看编译器操作?br />吉林-伙  1:48:39<br />不用?br />吉林-伙  1:48:43<br />必须copy</div></div></div><div><div><div> 吉林-伙  1:49:14<br />throw 那个地方是时对?br />深圳-Enic<errorcpp@qq.com> 1:49:16<br />那个E序实施看就知道?br />深圳-Enic<errorcpp@qq.com> 1:49:27<br />不一定是临时?br />吉林-伙  1:49:32<br />一定的<br />吉林-伙  1:49:34<br />呵呵<br />吉林-伙  1:49:33<br />你试?br />吉林-伙  1:49:41<br />q个地方我记得最清楚<br />深圳-Enic<errorcpp@qq.com> 1:49:53<br />囧,我要是一?nbsp;关闭拯构造的class<br />深圳-Enic<errorcpp@qq.com> 1:49:57<br />你咋_Q,<br />深圳-Enic<errorcpp@qq.com> 1:50:04<br />不让抛了Q,Q?br />吉林-伙  1:50:34<br />你试?br />吉林-伙  1:50:37<br />q个问题我真没想q?br />吉林-伙  1:51:01<br />不过你怎么关闭拯构造呢Q?br />吉林-伙  1:51:39<br />默认构造你可以关闭<br />深圳-Enic<errorcpp@qq.com> 1:51:56<br />囧,Q,<br />深圳-Enic<errorcpp@qq.com> 1:52:01<br />如果你说的成?br />深圳-Enic<errorcpp@qq.com> 1:52:13<br />是说这栯反了Cpp的语法规?br />吉林-伙  1:52:29<br />你打C地址<br />吉林-伙  1:52:34<br />看看 q个不是我说?br />深圳-Enic<errorcpp@qq.com> 1:52:36<br />?nbsp;引用接收C?nbsp;copy的对?br />吉林-伙  1:52:40<br />是我从书上看?br />吉林-伙  1:52:52<br />当然 不排除我记错的可?br /><br />吉林-伙  1:52:58<br />但是 我觉得我没记?br />吉林-伙  1:52:59<br />呵呵<br />吉林-伙  1:53:19<br />你试?nbsp;我去写摄像头<br />吉林-伙  1:53:27<br />{你l果<img src="file:///C:\Users\Error\AppData\Local\Temp\X@8}U9MLE}EBUE273)]9PGF.gif" sysface="13" alt="" /><br />深圳-Enic<errorcpp@qq.com> 1:56:13<br />囧,Q,<br /><br />是时对?br />吉林-伙  1:56:24<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\X@8}U9MLE}EBUE273)]9PGF.gif" sysface="13" alt="" /><br />深圳-Enic<errorcpp@qq.com> 1:56:25<br />所以,q里不是 call<br />吉林-伙  1:56:36<br />引用失效了吧<br />深圳-Enic<errorcpp@qq.com> 1:56:39<br />应该有个q行时环境做了手?br />南-relilun(232359027) 1:57:23<br /><img src="file:///D:\Program Files (x86)\Tencent\QQ\PersonalData\85126585\Image\g5q5hi9$_[%0v`]zcnytpob.jpg" alt="" /><br />吉林-伙  1:58:07<br />好了 既然已经定是时对象了 你告诉我下怎么关闭拯构?br />深圳-Enic<errorcpp@qq.com> 1:59:29<br />囧,Q,<br />深圳-Enic<errorcpp@qq.com> 1:59:35<br />private<br />深圳-Enic<errorcpp@qq.com> 1:59:45<br />class CTest : boost::noncopyable<br />吉林-伙  1:59:49<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\{[W]SJ`1FUG%F3J0GE}I0JW.gif" sysface="27" alt="" /><br />深圳-Enic<errorcpp@qq.com> 1:59:52<br />q有一个是宏的Q,Q?br />吉林-伙  1:59:56<br />我二?br />吉林-伙  2:00:00<br />你试?br />吉林-伙  2:00:04<br />试试<br />吉林-伙  2:00:03<br />你关闭下十四?br />吉林-伙  2:00:13<br />看看让抛Z?br />深圳-Enic<errorcpp@qq.com> 2:01:32<br />~译错误<br />吉林-伙  2:01:53<br />?br />吉林-伙  2:01:56<br />太感谢了<br />深圳-Enic<errorcpp@qq.com> 2:01:56<br />刚刚是徏立在假象throw和catch是直接call的关p?br />吉林-伙  2:02:03<br />又学C不少<br />深圳-Enic<errorcpp@qq.com> 2:02:38<br />应该是有个第三方 接收throw的对象,然后清理现场Q然后拷贝异常,再送到 catch<br />吉林-伙  2:03:06<br />如果你throw的不是对象呢<br />吉林-伙  2:03:22<br />仅仅是一个char*<br />深圳-Enic<errorcpp@qq.com> 2:03:25<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\8HCCR1ND`{6ZG)4P4ECX6KO.gif" alt="" />我想q不是问?br />吉林-伙  2:04:09<br />应该是采用同L基址<br />深圳-Enic<errorcpp@qq.com> 2:04:09<br />今天的专题是Q小伙和他的异常<br />吉林-伙  2:04:11<br />机制<br />吉林-伙  2:04:26<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\{[W]SJ`1FUG%F3J0GE}I0JW.gif" sysface="27" alt="" /><br />吉林-伙  2:04:30<br />你可别发?br />吉林-伙  2:04:32<br />丢h<br />深圳-Enic<errorcpp@qq.com> 2:05:21<br />《一个异常引发的血案?br />深圳-Enic<errorcpp@qq.com> 2:06:08<br />应该是mutex的数量到深入探讨C++异常 </div></div></div><div><div> 深圳-Enic<errorcpp@qq.com>  2:09:34<br />忘了说了<br />catch不用reference<br />会多一ơ拷?nbsp;</div></div><div><div> 吉林-伙 (694129464)  2:10:20<br />哦?<br />?br />那更有意思了<br />哈哈<br />了解?nbsp;<br /><div><div> 吉林-伙 (694129464)  2:11:17<br />q时候就copy了一?br />然后W三方传l?nbsp;catch<br />深圳-Enic<errorcpp@qq.com>  2:12:37<br />三次析构<br />两次构?br />有一ơ应该是 0x语法中的move<br />吉林-伙 (694129464)  2:13:07<br />没用引用Q?br />q是用了引用Q?br />深圳-Enic<errorcpp@qq.com>  2:13:15<br />throw的时?br />值catch<br />吉林-伙 (694129464)  2:13:49<br />不应该三ơ析?nbsp;两次构造的?br />深圳-Enic<errorcpp@qq.com>  2:14:17<br />C++果然是不是一般h玩的<br />我这是算?nbsp;try里边的栈 <br /><div><div> c++太可怕了<br />深圳-Enic<errorcpp@qq.com>  2:15:50<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\4G]AXXFGC7B9S[JRP)MNFFL.gif" alt="" />话说java c#更可?br />你压根就不想知道~译器干了啥Q,Q?nbsp;</div></div><br /><div><div> c++太可怕了<br />深圳-Enic<errorcpp@qq.com>  2:15:50<br /><img src="file:///C:\Users\Error\AppData\Local\Temp\4G]AXXFGC7B9S[JRP)MNFFL.gif" alt="" />话说java c#更可?br />你压根就不想知道~译器干了啥Q,Q?nbsp;</div></div></div></div></div></div></div></div></div><img src ="http://www.shnenglu.com/Error/aggbug/163374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Error/" target="_blank">Enic</a> 2012-01-02 02:10 <a href="http://www.shnenglu.com/Error/articles/163374.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>?分钟U程速班成到深入分析U程退出必closehandleQ否则资源泄漏(贝妞l验分nQ?/title><link>http://www.shnenglu.com/Error/articles/162400.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Mon, 19 Dec 2011 05:36:00 GMT</pubDate><guid>http://www.shnenglu.com/Error/articles/162400.html</guid><wfw:comment>http://www.shnenglu.com/Error/comments/162400.html</wfw:comment><comments>http://www.shnenglu.com/Error/articles/162400.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Error/comments/commentRss/162400.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Error/services/trackbacks/162400.html</trackback:ping><description><![CDATA[<!--StartFragment --> <div><!--StartFragment --> <div>- -?583214826) 12:07:52 <br />谁能l我讲一下vc++多线E,几分钟就搞定<br />- -?583214826) 12:08:06 <br />谁能l我讲一下vc++多线E,几分钟就搞定, 多谢大神们,真的很?br />misora<chriscross@qq.com> 12:08:41 <br />q个太广泛了。?br />- -?583214826) 12:09:03 <br />创徏一个线E,可以随时启用Q就ok?br />- -?583214826) 12:10:06 <br />亲们Q帮帮我?br />misora<chriscross@qq.com> 12:10:24 <br />_beginthreadex<br />- -?583214826) 12:10:41 <br />有没有比较完整一些的代码<br />misora<chriscross@qq.com> 12:10:46 <br />没有<br />- -?583214826) 12:10:59 <br />_begininthreadex是个ҎQ?br />misora<chriscross@qq.com> 12:11:10 <br />是开始一个线E?br />- -?583214826) 12:11:46 <br />?br />杯水车薪(1729751029) 12:18:11 <br />无线上网?nbsp;?nbsp;无线|卡?U不同的东东. 现在都ؕ套了<br />- -?583214826) 12:18:36 <br />...<br />上v-千层(670825328) 12:19:17 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/rlad@%1ug@h%(1$i4g]tecx.jpg" />?????????????????q有q样提需求的?<br />如果有h?谁给我一套房,200元搞?q个可笑?br />杯水车薪(1729751029) 12:19:31 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/e@`]$3x4f)d}%[_ajg`@apb.gif" /><br />上v-千层(670825328) 12:20:45 <br />需求定?旉成本已被决定了.<br />泥翘(694820778) 12:22:49 <br />什么东襉K{着别hl你来讲 <br />杯水车薪(1729751029) 12:23:16 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/3upy1b90c__6~7l2kz6`dl6.jpg" /><br />泥翘(694820778) 12:23:45 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/try1j6viyrp0y49lr)jwopw.gif" /> <br />- -?583214826) 12:28:02 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/ae$u9%vy774)]hwgbpti@5d.jpg" /><br />- -?583214826) 12:28:13 <br />旉跟钱不一样好?br />杯水车薪(1729751029) 12:30:35 <br />不是?昨天老师q说旉是金钱<br />- -?583214826) 12:30:49 <br />好吧随便?br />杯水车薪(1729751029) 12:31:04 <br />要么可能今天不是?br />杯水车薪(1729751029) 12:32:23 <br />不过,我学多线E学了一周才会用?好久以后才明白怎么才能不让E序崩溃<br />- -?583214826) 12:33:47 <br />很多语言的线E我都学q,唯独vc++不会Q其?行代码就可以解决q行一个线E,关键我不会写啊,求高人指炏V?br />武汉-Error<errorcpp@qq.com> 12:34:40 <br />- -?583214826)  12:33:47<br />很多语言的线E我都学q,唯独vc++不会Q其?行代码就可以解决q行一个线E,关键我不会写啊,求高人指炏V?br /><br />凭你这句话<br />武汉-Error<errorcpp@qq.com> 12:34:44 <br />没必要在q里?br />- -?583214826) 12:34:57 <br />...<br />- -?583214826) 12:35:06 <br />我就是问一下,q引起公愤了<br />- -?583214826) 12:35:07 <br />- -<br />- -?583214826) 12:35:12 <br />求高人指?br />武汉-Error<errorcpp@qq.com> 12:35:15 <br />5分钟够你在msdn扑ֈapi?br />- -?583214826) 12:35:49 <br />有高手给写个单易懂的岂不是更?br />杯水车薪(1729751029) 12:36:53 <br />貌似msdn也是高手所写,msdn中也有简单易懂的例子<br />- -?583214826) 12:37:09 <br />那你们去扑֐?br />- -?583214826) 12:37:13 <br />求高人指?br />杯水车薪(1729751029) 12:37:24 <br />不过Q用VC的多U程和其它语a的是很大不同地?br /></div><!--StartFragment --> <div>- -?583214826) 12:37:32 <br />嗯,明白<br />武汉-Error<errorcpp@qq.com> 12:37:37 <br />哥给你找个,估计你不会用<br />唉,Q,<br />- -?583214826) 12:37:48 <br />那你l我找个吧,ȝ你了<br />杯水车薪(1729751029) 12:37:49 <br />其它语言地学会了Q到了VCq里Q仍然等于初学?br />上v-千层(670825328) 12:39:07 <br />Ҏ我的分析Q这里分2cMhQ一cȝ不会的,在此忽悠人?br />另一cȝ学会了,当初学得很费力,所以今天看到另一?br />不会的,只感到高?br />武汉-Error<errorcpp@qq.com> 12:39:28 <br />不是Q他问问题的态度 我很难接?br />- -?583214826) 12:39:34 <br />q有一c,是吃饱了没事干在这评论问题?br />上v-千层(670825328) 12:39:38 <br />唉。一切的|都在多U程太难。不能怪Q何h<br />武汉-Error<errorcpp@qq.com> 12:39:52 <br />用boost::thead<br />- -?583214826) 12:40:03 <br />我的态度没那么不好吧Q?nbsp;- -<br />上v-千层(670825328) 12:40:39 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/%v6un_iqc7ru$r%w50$y~7f.jpg" />向他推荐用boost的,看来属于W?cM?br />武汉-Error<errorcpp@qq.com> 12:41:12 <br />装逼的<br />上v-千层(670825328) 12:41:14 <br />唉。只能说Q咱虽,品种却多?br />- -?583214826) 12:41:29 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/hv@56g0cp69}`}e0c6r4sxb.jpg" /><br />你是不是大姨妈来了?<br />- -?583214826) 12:41:50 <br />你要真觉着没事q可以去看看书什么的<br />- -?583214826) 12:41:57 <br />知识是无边的。你怎么也学不完<br />上v-千层(670825328) 12:42:08 <br />你是不是没钱L摩啊<br />武汉-Error<errorcpp@qq.com> 12:42:12 <br />问问题的q是评论,Q,<br />上v-千层(670825328) 12:42:17 <br />q么兴奋<br />- -?583214826) 12:42:28 <br />我不兴奋Q看你吃太多了,我关心一?br />上v-千层(670825328) 12:43:12 <br />只是׃一下Ş了。你q有啥不开心的Q也说说让咱开心一?br />武汉-Error<errorcpp@qq.com> 12:43:33 <br />q小伙应该不是Cpȝ序员<br />杯水车薪(1729751029) 12:43:33 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/[z@~2[]k8oa3yze]8[g6_yb.jpg" /><br />- -?583214826) 12:43:40 <br />我跟你那谁有一腿了。不好意?br />- -?583214826) 12:43:46 <br />我不是学c++?br />杯水车薪(1729751029) 12:44:17 <br />不是?br />杯水车薪(1729751029) 12:44:31 <br />来错了。怪不得成了娱乐?br />- -?583214826) 12:45:10 <br />哦,你们很不喜欢不会c++的h?br />- -?583214826) 12:45:16 <br />好吧<br />杯水车薪(1729751029) 12:45:20 <br />喜欢<br />杯水车薪(1729751029) 12:45:48 <br />C++的h很少׃的?br />武汉-Error<errorcpp@qq.com> 12:46:13 <br />相对q是很open?br />上v-千层(670825328) 12:46:14 <br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/LY6DR3ISJE0)6K)L)]~VIZK.gif" sysface="20" /><br />上v-千层(670825328) 12:47:04 <br />看把他急的Q这一腉K一腉K说出来了。快崩溃了?br />看来他本w就不是多线E的?br />武汉-Error<errorcpp@qq.com> 12:47:19 <br /><br />#include <iostream><br /><br />using namespace std;<br /><br />#include <boost/thread.hpp><br /><br />void TestFunc()<br />{<br />cout << __FUNCTION__ << endl;<br />}<br /><br />int _tmain(int argc, _TCHAR* argv[])<br />{<br />boost::thread threadTest(&TestFunc);<br /><br />threadTest.join();<br /><br />getchar();<br /><br />return 0;<br />}<br />武汉-Error<errorcpp@qq.com> 12:47:25 <br />没编?br />杯水车薪(1729751029) 12:47:23 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/ibz2mbj%bx0inz`r~f28}ji.gif" /><br />武汉-Error<errorcpp@qq.com> 12:47:31 <br />不过应该没问题的<br />- -?583214826) 12:47:36 <br />谢谢高手Q比某h强很?br />武汉-Error<errorcpp@qq.com> 12:47:43 <br />我是水货<br />武汉-Error<errorcpp@qq.com> 12:47:51 <br />高手不会回答q么单的问题?br />武汉-Error<errorcpp@qq.com> 12:47:55 <br />其你这U态度<br />武汉-Error<errorcpp@qq.com> 12:48:04 <br />我敢?nbsp;在C++?nbsp;l对混不开<br />武汉-Error<errorcpp@qq.com> 12:48:18 <br />除非你在其他斚w很牛<br />- -?583214826) 12:48:52 <br />我态度也没怎么不好啊,我只是解释一下我能很快接受高手给讲得东西|了<br />- -?583214826) 12:49:09 <br />要不然你看看聊天记录- -<br />杯水车薪(1729751029) 12:49:09 <br />武汉-ErrorQ这L题,什么也不会解决。他仍然不会Q相信boost是需要安装的Q所以他也用不成<br />- -?583214826) 12:49:28 <br />我试试吧Q不行再解决<br />游戏开发?2528395832) 12:49:34 <br />推荐你找好工?nbsp;只要你上CG游戏人才|:http://www.cggamejob.com注册个h会员Q?nbsp;p帮你实现׃ 最新职位招聘:Q?D角色 场景 Ҏ 动作 p动画 术 E序、策划、数?nbsp;市场  q营{? <br />武汉-Error<errorcpp@qq.com> 12:49:42 <br />- -?583214826)  12:48:52<br />我态度也没怎么不好啊,我只是解释一下我能很快接受高手给讲得东西|了<br /><br />C++er 从来不信速成<br />杯水车薪(1729751029) 12:49:41 <br />他还得再提问<br />武汉-Error<errorcpp@qq.com> 12:50:11 <br />合格的C++er  都是被编译器摧残y躏出来?br />- -?583214826) 12:50:14 <br />q我信了速成也不能说我态度不好?nbsp;- -Q我很诚恌。?br />武汉-Error<errorcpp@qq.com> 12:50:23 <br />诚恳个屁<br />杯水车薪(1729751029) 12:50:24 <br />你开了头Q要是不帮他完全解决Q反可能成ؓ不耐心的h?br />- -?583214826) 12:50:36 <br />...<br />- -?583214826) 12:50:37 <br />好吧<br />武汉-Error<errorcpp@qq.com> 12:50:49 <br />囧,Q,<br />- -?583214826) 12:50:57 <br />弟认错?br />武汉-Error<errorcpp@qq.com> 12:51:10 <br />error PRJ0003 : Error spawning 'cmd.exe'.<br /><br /><!--StartFragment --> <div>武汉-Error<errorcpp@qq.com> 12:51:13 <br />谁遇到过<br />- -?583214826) 12:52:02 <br />问个问题真困?br />- -?583214826) 12:52:03 <br />?br />杯水车薪(1729751029) 12:52:37 <br />可能原因恰在于你问了一个过于简单的问题<br />武汉-Error<errorcpp@qq.com> 12:52:52 <br />太抽象了<br />- -?583214826) 12:53:08 <br />果然出问题了<br />- -?583214826) 12:53:21 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/iwx7of8579t3q$tm_33bzdt.jpg" /><br />- -?583214826) 12:53:31 <br />q是要添加外部文件吧Q?br />杯水车薪(1729751029) 12:53:45 <br />好,武汉人,可以l箋了?br />- -?583214826) 12:53:54 <br />....<br />武汉-Error<errorcpp@qq.com> 12:54:24 <br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/)QN1UH78VKP2T7)IA]ZM(FW.gif" sysface="97" /><br />- -?583214826) 12:54:36 <br />不对<br />- -?583214826) 12:54:47 <br />是这?br />上v-千层(670825328) 12:54:51 <br />用了boost你就掉进了无底洞?br />现在怿关于W?cMh的理Z吧?br />- -?583214826) 12:55:09 <br />我的E序要在标准win32q_下运行,不能带其他的cd<br />武汉-Error<errorcpp@qq.com> 12:55:12 <br />声明下,Q,偶今天是装逼来的,Q,<br />武汉-Error<errorcpp@qq.com> 12:55:30 <br />主要是不用boost 太麻烦了Q要写好多代?br />- -?583214826) 12:55:33 <br />....<br />杯水车薪(1729751029) 12:55:26 <br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/e@`]$3x4f)d}%[_ajg`@apb.gif" /><br />- -?583214826) 12:55:42 <br />createThreadq个p了吧 </div></div><br /><br />武汉-Error<errorcpp@qq.com>  12:55:59<br />- -?583214826)  12:55:42<br />createThreadq个p了吧<br /><br />单的l你代码 是害你,Q,<br />- -?583214826)  12:56:05<br />明白<br />武汉-Error<errorcpp@qq.com>  12:56:06<br />很多东西要注意的<br />武汉-Error<errorcpp@qq.com>  12:56:25<br />__beginthread<br />武汉-Error<errorcpp@qq.com>  12:56:27<br />用这?br />武汉-Error<errorcpp@qq.com>  12:56:31<br />理由不解?br />- -?583214826)  12:56:37<br />我查?br />杯水车薪(1729751029)  12:57:08<br />用哪个函C能不知道Q一共就2个函数。msdn中推荐一个?br />武汉-Error<errorcpp@qq.com>  12:57:20<br />上v-千层(670825328)  12:54:51<br />用了boost你就掉进了无底洞?br />现在怿关于W?cMh的理Z吧?br /><br />千同学展开来说?br />武汉-Error<errorcpp@qq.com>  12:57:27<br />q有一会才上班?br />上v-千层(670825328)  12:57:37<br />真正的困难还没看出来Q困隑֜于要几分钟之内?br />杯水车薪(1729751029)  12:57:49<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/LY6DR3ISJE0)6K)L)]~VIZK.gif" sysface="20" /><br />- -?583214826)  12:58:01<br />呵呵Q可惜没带着我搞一?br />- -?583214826)  12:58:07<br />自己搞当然要花时间了<br />武汉-Error<errorcpp@qq.com>  12:58:08<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/)QN1UH78VKP2T7)IA]ZM(FW.gif" sysface="97" /><br /><br />我不用boost 也要L函数Q然后填api<br />上v-千层(670825328)  12:58:08<br />U程能有多少函数啊?<br />- -?583214826)  12:58:09<br />?br />杯水车薪(1729751029)  12:58:48<br />xQ武汉h是唯一回答q的人,Ll吧<br />上v-千层(670825328)  12:59:39<br />别h花时间搞成功的,适用于所有情늚Q恐怕只有boost了?br />上v-千层(670825328)  13:00:01<br />好东东怕你吞不下去?<br />武汉-Error<errorcpp@qq.com>  13:00:04<br />我不是武汉h<br />武汉-Error<errorcpp@qq.com>  13:00:22<br />好吧<br />武汉-Error<errorcpp@qq.com>  13:00:25<br />W二?nbsp;l你<br />武汉-Error<errorcpp@qq.com>  13:00:27<br />#include <iostream><br /><br />using namespace std;<br /><br />#include <boost/thread.hpp><br /><br />#include <Windows.h><br />#include <process.h> <br /><br />void TestFunc()<br />{<br />cout << __FUNCTION__ << endl;<br />}<br /><br />void TestFuncWin( void *ch )<br />{<br />cout << __FUNCTION__ << endl;<br />}<br /><br /><br />int _tmain(int argc, _TCHAR* argv[])<br />{<br />boost::thread threadTest(&TestFunc);<br /><br />threadTest.join();<br /><br />_beginthread( &TestFuncWin, 0, NULL );<br /><br /><br /><br />getchar();<br /><br />return 0;<br />}<br />武汉-Error<errorcpp@qq.com>  13:00:45<br />不过你要是这么用了,技术经理会怀疑你的能?br />- -?583214826)  13:01:44<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/$I8873TJFOGX9(M_~(CH8$N.jpg" /><br />上v-千层(670825328)  13:02:09<br />你都改用api了,那这个例子就别用boost了。他电脑里没q个?br />武汉-Error<errorcpp@qq.com>  13:02:19<br />q是我编译通过的代码,Q,<br /><br />你怎么跟研I生一样麻?br />- -?583214826)  13:02:27<br />.....<br />武汉-Error<errorcpp@qq.com>  13:02:45<br />?nbsp;boost的东?nbsp;q掉<br />武汉-Error<errorcpp@qq.com>  13:02:50<br />剩下的就是你要的<br />- -?583214826)  13:02:58<br />行了<br />- -?583214826)  13:03:00<br />我没用boost<br />- -?583214826)  13:03:09<br />thanks<br />上v-千层(670825328)  13:03:20<br />在函数前加修饰字 “WINAPI”<br />武汉-Error<errorcpp@qq.com>  13:03:32<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/[LC3U)F{0XCAB)LKNIT0K@G.gif" sysface="79" />  装逼成?br />- -?583214826)  13:03:35<br />.....<br />武汉-Error<errorcpp@qq.com>  13:03:46<br />其实学C++的h都很热情<br />武汉-Error<errorcpp@qq.com>  13:03:59<br />只是恨牛不成逼啊<br />- -?583214826)  13:04:01<br />ȝE的函数q是开启线E要执行的函?br />上v-千层(670825328)  13:04:01<br />个个都像是刚来大姨妈一?br />武汉-Error<errorcpp@qq.com>  13:04:32<br />#include <iostream><br /><br />using namespace std;<br /><br /><br /><br />#include <Windows.h><br />#include <process.h> <br /><br /><br />void TestFuncWin( void *ch )<br />{<br />cout << __FUNCTION__ << endl;<br />}<br /><br /><br />int _tmain(int argc, _TCHAR* argv[])<br />{<br /><br />_beginthread( &TestFuncWin, 0, NULL );<br /><br />getchar();<br /><br />return 0;<br />}<br />武汉-Error<errorcpp@qq.com>  13:04:36<br />q样׃会错?br />武汉-Error<errorcpp@qq.com>  13:04:38<br />o(|Ӟ`|?o 唉,Q,<br />- -?583214826)  13:05:42<br />好了Q成功了<br />武汉-Error<errorcpp@qq.com>  13:05:58<br />午休旉都快q了Q,Q?br />- -?583214826)  13:06:02<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/`_3IDE5_G%D5ZKS[WM]7O5N.jpg" /><br />- -?583214826)  13:06:38<br />好吧Q被骂的很爽Q不q问题解决了<br />- -?583214826)  13:06:42<br />谢谢怽大神?br />上v-千层(670825328)  13:06:59<br />呵呵Q不是成功了<br />而是p|刚开?br />- -?583214826)  13:07:18<br />p|了就debug<br />- -?583214826)  13:07:26<br />为debug奋斗一辈子- -<br />武汉-Error<errorcpp@qq.com>  13:07:30<br />上v-千层(670825328)  13:06:59<br />呵呵Q不是成功了<br />而是p|刚开?br /><br />正解<br />武汉-Error<errorcpp@qq.com>  13:07:48<br />多线E的q真?nbsp;debug一辈子<br />杯水车薪(1729751029)  13:07:50<br />不是太可能吧。多U程可以认ؓ是一条不归\。用了就是找歅R?br />杯水车薪(1729751029)  13:08:00<br />debug没用<br />- -?583214826)  13:08:03<br />那个<br />- -?583214826)  13:08:14<br />q线E不会要手动销毁吧- -Q?br />武汉-Error<errorcpp@qq.com>  13:08:17<br />也别太绝对嘛<br />武汉-Error<errorcpp@qq.com>  13:08:28<br />自然return可?br />武汉-Error<errorcpp@qq.com>  13:08:38<br />不要问其他的?br />武汉-Error<errorcpp@qq.com>  13:08:46<br />一个月都讲不完<br />- -?583214826)  13:08:50<br />...<br />- -?583214826)  13:09:04<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/CY5E5M_9YA$ZG{38`@42ISS.jpg" /><br />- -?583214826)  13:09:09<br />q回的线E句柄嘛<br />上v-千层(670825328)  13:09:07<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/{Q93AGV7GWDL{5WZ~}ZP$_R.jpg" /> q不寏V?br />windows下线E会占用一个handleQ必close <br />- -?583214826)  13:09:14<br />不销毁怎么办?<br />上v-千层(670825328)  13:10:06<br />handle是系l别的资源。不close会旉长占完了以后pȝL<br />- -?583214826)  13:10:10<br />销毁线E的函数叫什么来着<br />武汉-Error<errorcpp@qq.com>  13:10:16<br />q个我真没注?br />上v-千层(670825328)  13:10:55<br />一般不要销毁线E。否则线E不会执行栈展开行ؓQ将会内存泄?br />- -?583214826)  13:11:31<br />U程用完才销?br />上v-千层(670825328)  13:11:47<br />不是Q不要销毁。要让线E自q?br />- -?583214826)  13:11:56<br />应该有个什么函敎ͼ用来接收<img alt="" src="file:///D:/QQ2010/Users/85126585/Image/CY5E5M_9YA$ZG{38`@42ISS.jpg" />传回来的参数<br />杯水车薪(1729751029)  13:12:12<br />Ƣ迎你来到多U程的失败之路?br />- -?583214826)  13:12:42<br />那线E指定的回调Ҏ执行完了不就自己q束了?br />- -?583214826)  13:12:53<br />好吧Q那׃用擦屁股?br />上v-千层(670825328)  13:13:10<br />应该Q这个想法没错。可U程传回来之前你创徏的线E可能就已经l束了,你要考虑和设?br />上v-千层(670825328)  13:13:36<br />q个handle也要close<br />- -?583214826)  13:13:54<br />我没扑ֈ什?nbsp;distoryThread之类的函?br />杯水车薪(1729751029)  13:13:58<br />了Q先用着吧。等L了再debug<br />- -?583214826)  13:14:21<br />TerminateThread(thread1, 0);<br />CloseHandle(thread1);<br /><br />- -?583214826)  13:14:25<br />是不是这两个<br />武汉-Error<errorcpp@qq.com>  13:14:34<br />千城<br />上v-千层(670825328)  13:14:43<br />多线E你想debug????????把大姨妈调出来了也调不出问题在哪<br />武汉-Error<errorcpp@qq.com>  13:14:48<br />你说的是 CreateThread 之后必须?nbsp;closeHandle?br />武汉-Error<errorcpp@qq.com>  13:14:57<br />我记得用_beginthread是不需要的啊?<br />武汉-Error<errorcpp@qq.com>  13:15:00<br />N我记错了Q?br />- -?583214826)  13:15:14<br />_beginthreadq回了一个ptr<br />- -?583214826)  13:15:23<br />我想应该是用作关闭的<br />武汉-Error<errorcpp@qq.com>  13:15:49<br />永远不要在线E外部强制关闭线E?br />- -?583214826)  13:15:57<br />嗯,?br />上v-千层(670825328)  13:16:37<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/69U{6CU`THGS7JMD2~8IH@B.jpg" />我就是用q个函数Q以前试q不closeQ连l运?0几个时Q最后handle没有了,出错了。一开始都是好的?br />武汉-Error<errorcpp@qq.com>  13:17:20<br />?nbsp;受教?nbsp;<br />杯水车薪(1729751029)  13:19:04<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/_XV~9AKTUT)QS$3LX16M424.gif" sysface="22" /><br />武汉-Error<errorcpp@qq.com>  13:19:08<br />如果用pthread 之类<br />武汉-Error<errorcpp@qq.com>  13:19:15<br />是不需要这么麻烦的?br />杯水车薪(1729751029)  13:19:24<br />好。事情完了?br />不过q个人的让我们不爽Q提议T?br />- -?583214826)  13:20:21<br />首先要澄清一个问题,那就是CreateThread是Windows的API函数Q而_beginthread和_beginthreadex则是CRT库函敎ͼ查看q两个CRT函数的代码可以得知其实它们内部是调用的CreateThreadQ这很显然嘛QCRT库也是要q行在Windows上)?br /><br />q两个CRT函数与CreateThread有什么区别呢Q区别在于这两个CRT函数针对其它CRT库函敎ͼ特别是那些涉及内存分配的CRT函数做了Ҏ的处理。直接在CreateThread API创徏的线E中使用sprintfQmallocQstrcat{涉及CRT存储堆操作的CRT库函数是很危险的Q容易造成U程的意外中止?nbsp;在用_beginthread和_beginthreadex创徏的线E中可以安全的用CRT函数Q但是必dU程l束的时候相应的调用_endthread或_endthreadex。虽焉是内部调用CreateThread API创徏U程Q但是这两个函数q是有很大的区别。首先,_beginthreadex函数比_beginthread函数多了三个参数Q它看h更像CreateThread而不是同胞兄弟_beginthreadQ其ơ,_beginthread要求U程函数是__cdecl调用U定Qƈ且没有返回|而_beginthreadex则要求线E函数是__stdcall调用U定q且q回U程的退出码Q第三,与_beginthread成对调用的_endthread函数内部隐式的调用CloseHandle关闭了线E句柄,而与_beginthreadex成对使用的_endthreadex则没有关闭线E的句柄Q需要显C的调用CloseHandle关闭U程句柄Q最后,q两个函数在执行成功时返回线E的句柄Q可以通过q个句柄调用其它U程相关的APIQ比如SetThreadPriorityQResumeThread{等。但是执行失败时q回值是不同的,_beginthreadq回 -1 表示p|Q而_beginthreadexq回 0 表示p|?<br /><br /> <p>武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:17:39<br />今天讨论一个问?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:17:44<br />关于U程?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:17:59<br />//Create a new thread.<br />   HANDLE hThread = CreateThread(NULL, 0, SecondThread, <br />      (PVOID)&x, 0, &dwThreadId);</p> <p>   //We don't reference the new thread anymore,<br />   //so close our handle to it.<br />   closeHandle(hThread);</p> <p><br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:18:08<br />q是Windows核心~程的一D代?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:18:23<br />为啥 CreateThread后面要跟一个closehandle<br />南昌-贝贝(1125591)  13:19:49<br />创徏U程?U程有个内核对象,句柄的存在对于内核对象的计数+1.关闭句柄以便减少计数.U程退出时q个内核对象删?<br />北京-li(76433692)  13:22:06<br />意味着Q句柄不作close U程退出时 内核对象不自动删除?需要手工删除?<br />北京-li(76433692)  13:22:48<br />创徏时如果不closeQ在退出线E时候close也是可以的吧Q?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:23:58<br />贝妞处理q类场景的规范是?br />南昌-贝贝(1125591)  13:24:29<br />内核对象中保存与U程有关的数?br />有句柄存?q个数据的引用计数就+1<br />如果不关?那么׃直可以通过q个句柄操作数据l构,操作U程<br />不关闭的?内核对象在进E退出前怸减少引用.引用?时才删除U程内核对象.  如果你不用它,又不 CloseHandle U程又退Z, q样内核对象q在,好比是有内存泄漏一?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:25:08<br />用pthread之类的库不会有这L问题?br />南昌-贝贝(1125591)  13:25:09<br />哥哥我通常保留到句?..以便以后操作, 在线E退出时再删?以后不用操作它的时?q接CloseHandle<br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:25:30<br /> 在线E退出时再删?/p> <p>是自己删除么Q?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:25:37<br />q是启动U程负责删除<br />南昌-贝贝(1125591)  13:25:35<br />是自己删?br />南昌-贝贝(1125591)  13:25:43<br />pȝl你删除?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:25:53<br />return 之前  closehandleQ?br />南昌-贝贝(1125591)  13:26:04<br />你不用操作这个线E了?CloseHandle<br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:28:24<br />是U程外部整的Q,Q?/p> <p>也就是贝妞基本上都是要带一?U程理模块<br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:28:33<br />q是贝妞专业?br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>>  13:28:40<br />o(|Ӟ`|?o 唉,Q,</p> <p>我才注意到这个问?br /><br /></p> <p>中山-疯子(510776002)  13:38:11<br />当程序调用CreateThread函数Ӟ首先pȝ为线E徏立一个用来管理线E的数据l构Q其中包含线E的一些统计信息,如引用计数和退出码{,q个数据l构被称为线E对象;接下来系l将从进E的地址I间中ؓU程的堆栈分配内存ƈ开始线E的执行。当U程l束ӞU程的堆栈被释放Q但是线E对象不会马上被释放Q系l保留它以便其他U程可以通过它检线E的有关情况Q直C用CloseHandle函数关闭U程句柄后,U程对象才会被释放?/p> <p>但是U程对象也可以提前被释放Q对于大部分的句柄来_如文件句柄hFileQ文件寻扑֏柄hFindFile{)Q用CloseHandle函数关闭句柄意味着整个对象被释放,但对于线E句柄来_关闭它仅释放U程的统计信息,q不会终止线E的执行Q所以如果不再需要用线E句柄的话,在调用CreateThread后马上就可以它关闭掉,U程的执行ƈ不会受媄响?br /></p> <p> </p></div><img src ="http://www.shnenglu.com/Error/aggbug/162400.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Error/" target="_blank">Enic</a> 2011-12-19 13:36 <a href="http://www.shnenglu.com/Error/articles/162400.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>IOCP lpCompletionKey 和打水的瓶子 (VC专业? 湖南-VC的遐?http://www.shnenglu.com/Error/articles/161848.htmlEnicEnicFri, 09 Dec 2011 15:01:00 GMThttp://www.shnenglu.com/Error/articles/161848.htmlhttp://www.shnenglu.com/Error/comments/161848.htmlhttp://www.shnenglu.com/Error/articles/161848.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/161848.htmlhttp://www.shnenglu.com/Error/services/trackbacks/161848.html湖南-VC(215735031) 21:58:46
GetQueuedCompletionStatus

你怎么理解q个函数的lpCompletionKey参数?
吉林-伙  21:59:36
q个Q?
吉林-伙  21:59:46
一个I/O完成?
吉林-伙  21:59:52
q个函数׃d?
湖南-VC(215735031) 22:00:09
再聚焦一?
湖南-VC(215735031) 22:00:29
我指的第三个参数
吉林-伙  22:00:32
然后q个参数传过来的 是你投递的那个h?对应的那个参?
吉林-伙  22:00:41
那个l构的指?
武汉-Error<errorcpp@qq.com> 22:00:44
q是接口
吉林-伙  22:00:50
我也不懂 哈哈
武汉-Error<errorcpp@qq.com> 22:01:06
Z让你舒服?
吉林-伙  22:01:13
CreateIoCompletionPort q个指定?
武汉-Error<errorcpp@qq.com> 22:01:26
如果没有q个参数  你肯定会惛_法实现类似的效果
湖南-VC(215735031) 22:01:54
我明白它的用?
吉林-伙  22:01:59
我就用这个参数得到完成I/O的那个socket?
吉林-伙  22:02:09
你说?br />我学?
湖南-VC(215735031) 22:02:12
但还是觉得没有一个Ş象的词语C?
吉林-伙  22:02:14
我对完成端口 完全不会
湖南-VC(215735031) 22:02:28
说键值对Q不准确
南昌-贝贝(1125591) 22:02:30
lpCompletionKey : 携带和IO句柄相关的数?br />lpOverlapped : 携带和当前这ơIO相关的数?
湖南-VC(215735031) 22:02:34
更像是键?
吉林-伙  22:02:57
贝神 W记
吉林-伙  22:02:58
呵呵
湖南-VC(215735031) 22:03:25
key其实比较形象
湖南-VC(215735031) 22:03:28
钥匙Q?
杭州 -(_?26062281) 22:03:50
咋又玩上IOCP?

吉林-伙  21:57:11
靠h格魅?nbsp;
吉林-伙  21:57:12
哈哈
湖南-VC(215735031) 21:57:17
v来我比你开支还?毛,我喝果粒,大瓶?
吉林-伙  21:57:23
靠激?
吉林-伙  21:57:50
不吹牛g
湖南-VC(215735031) 21:58:46
GetQueuedCompletionStatus

你怎么理解q个函数的lpCompletionKey参数?
吉林-伙  21:59:36
q个Q?
吉林-伙  21:59:46
一个I/O完成?
吉林-伙  21:59:52
q个函数׃d?
湖南-VC(215735031) 22:00:09
再聚焦一?
湖南-VC(215735031) 22:00:29
我指的第三个参数
吉林-伙  22:00:32
然后q个参数传过来的 是你投递的那个h?对应的那个参?
吉林-伙  22:00:41
那个l构的指?
武汉-Error<errorcpp@qq.com> 22:00:44
q是接口
吉林-伙  22:00:50
我也不懂 哈哈
武汉-Error<errorcpp@qq.com> 22:01:06
Z让你舒服?
吉林-伙  22:01:13
CreateIoCompletionPort q个指定?
武汉-Error<errorcpp@qq.com> 22:01:26
如果没有q个参数  你肯定会惛_法实现类似的效果
湖南-VC(215735031) 22:01:54
我明白它的用?
吉林-伙  22:01:59
我就用这个参数得到完成I/O的那个socket?
吉林-伙  22:02:09
你说?br />我学?
湖南-VC(215735031) 22:02:12
但还是觉得没有一个Ş象的词语C?
吉林-伙  22:02:14
我对完成端口 完全不会
湖南-VC(215735031) 22:02:28
说键值对Q不准确
南昌-贝贝(1125591) 22:02:30
lpCompletionKey : 携带和IO句柄相关的数?br />lpOverlapped : 携带和当前这ơIO相关的数?
湖南-VC(215735031) 22:02:34
更像是键?
吉林-伙  22:02:57
贝神 W记
吉林-伙  22:02:58
呵呵
湖南-VC(215735031) 22:03:25
key其实比较形象
湖南-VC(215735031) 22:03:28
钥匙Q?
杭州 -(_?26062281) 22:03:50
咋又玩上IOCP?
湖南-VC(215735031) 22:03:50
兌file handle的时候,指定一把钥?
武汉-Error<errorcpp@qq.com> 22:04:06
贝贝是贝贝
湖南-VC(215735031) 22:04:10
收到通知的时候,pȝq回q把钥匙
武汉-Error<errorcpp@qq.com> 22:04:24
有了q个以后 ׃需要自己做map?
武汉-Error<errorcpp@qq.com> 22:04:57
我觉得是q样?nbsp; socket handle 要和一个更加抽象的handle 兌h
湖南-VC(215735031) 22:05:10
map ?keyvalue 有得一拼啊
湖南-VC(215735031) 22:05:44
如果hsocket是key, 一个更丰满的结构体是value
武汉-Error<errorcpp@qq.com> 22:05:57
扩展下话题吧
湖南-VC(215735031) 22:06:02
那么pȝ完成通知后,q回一个丰满的value?
吉林-伙  22:06:15
今天你可别发会议记录?
吉林-伙  22:06:16
呵呵
吉林-伙  22:06:22
我该丢h?
吉林-伙  22:06:28
哈哈 不懂完成端口
武汉-Error<errorcpp@qq.com> 22:06:39
异步的socket分成两类
一cL?socket句柄作ؓkey
一cL?每次IO动作为key
武汉-Error<errorcpp@qq.com> 22:06:48
貌似我最q半q就q收?
湖南-VC(215735031) 22:06:51
GetQueuedCompletionStatus ?WSARecv, WSASend驱动
武汉-Error<errorcpp@qq.com> 22:07:04
贝贝刚刚一句话炚w了很多
湖南-VC(215735031) 22:07:08
而WSARecv又必M入有效的hSocket,
武汉-Error<errorcpp@qq.com> 22:07:21
IOCP ?两种模型 都有key
湖南-VC(215735031) 22:07:20
而这个hSocket又是之前的keyvalue的键
武汉-Error<errorcpp@qq.com> 22:07:29
是滴
武汉-Error<errorcpp@qq.com> 22:08:00
听贝一席话Q胜写十q代?
湖南-VC(215735031) 22:08:12
说到底,都是围绕hSocketQ?nbsp;
武汉-Error<errorcpp@qq.com> 22:08:35
恩,但是IOCP 
武汉-Error<errorcpp@qq.com> 22:08:47
q需?Ҏơ的投?标记
武汉-Error<errorcpp@qq.com> 22:08:57
所以就有了 后面那个参数?
武汉-Error<errorcpp@qq.com> 22:09:26
看过一个网l项目的代码
武汉-Error<errorcpp@qq.com> 22:09:32
他是l每个socket句柄
武汉-Error<errorcpp@qq.com> 22:09:41
配一个inbuffer  一个outbuffer

 

南昌-贝贝(1125591) 22:10:08
完成端口又不是专l?nbsp; socket  用的
武汉-Error<errorcpp@qq.com> 22:10:13
创徏完成端口的时?nbsp; 把这个对象的地址最为key
杭州 -(_?26062281) 22:10:25
那还l什么用?
武汉-Error<errorcpp@qq.com> 22:10:41
所有的handle都可以好?nbsp; 
吉林-伙  22:10:42
我用的时?
吉林-伙  22:10:45
弄一个buffer
南昌-贝贝(1125591) 22:10:51
所有IO操作都可以用
湖南-VC(215735031) 22:10:53
说到底都围绕一个file handle
吉林-伙  22:11:02
?
武汉-Error<errorcpp@qq.com> 22:11:02
q可以当作线E池?
杭州 -(_?26062281) 22:11:09
?nbsp; recv send q些函数 可以?
南昌-贝贝(1125591) 22:11:22
recv send 是同步的
武汉-Error<errorcpp@qq.com> 22:11:49
recv是伯克利标准?
南昌-贝贝(1125591) 22:11:48
道我也用IOCP
湖南-VC(215735031) 22:12:10
我想C个Ş象点的比M?
武汉-Error<errorcpp@qq.com> 22:12:23
?
杭州 -(_?26062281) 22:12:32
不是有个函数可以讄的吗
杭州 -(_?26062281) 22:13:43
难怪上ơ有个h和我说iocp 不要拘惔于socket
杭州 -(_?26062281) 22:14:01
学习?感谢贝神
武汉-Error<errorcpp@qq.com> 22:14:58
LPOVERLAPPED *lpOverlapped,  
武汉-Error<errorcpp@qq.com> 22:15:01
q个参数
吉林-伙  22:15:02
在我q没接触IOCP的时?br />q个里
武汉-Error<errorcpp@qq.com> 22:15:16
一般咋设计?nbsp;
湖南-VC(215735031) 22:15:17
pȝ接收一个外部链接套接字Q可以比作一张纸条,上面1表示一个编P把这张纸贴在一个瓶子上Q这个瓶子就相当于completionKey, 当系l完成某个动作,相当于把瓶子里注满水QGetQueuedCompletionStatus 的时候是q整个瓶子扔回来的,瓶子上自然有那个sock1标签?
吉林-伙  22:15:19
pqNơIOCP不只用于|络
武汉-Error<errorcpp@qq.com> 22:15:20
大伙?
南昌-贝贝(1125591) 22:15:46
重叠l构由微软内部?Z农村的一般不知道里面q啥?
吉林-伙  22:15:49
Q?
湖南-VC(215735031) 22:16:34
哈哈Q讨Z下,加׃印象?下次再有什么抽象的再跟你们讨论谈论
湖南-VC(215735031) 22:17:19
一pd的操作都是围l那张纸q行的?
武汉-Error<errorcpp@qq.com> 22:17:31
本期的主题就??IOCP lpCompletionKey湖南VC哥丢q标签?
吉林-伙  22:17:33
理解不上?
湖南-VC(215735031) 22:17:40
得, error,别写我?
湖南-VC(215735031) 22:17:45
伙 哪里不理?
武汉-Error<errorcpp@qq.com> 22:17:47
q没完咧
吉林-伙  22:17:59
我根本就不懂完成端口
武汉-Error<errorcpp@qq.com> 22:18:00
q没?怎么标记 每次Q,Q?
吉林-伙  22:18:02
一炚w不懂
武汉-Error<errorcpp@qq.com> 22:18:13
你刚刚标C 瓶子
湖南-VC(215735031) 22:18:22
hSocket U条
lpCompletionKey 瓶子
武汉-Error<errorcpp@qq.com> 22:18:25
现在要标记每ơ打水的动作
湖南-VC(215735031) 22:18:37
当纸条脓到瓶子的时候,Q,
湖南-VC(215735031) 22:18:52
对的
武汉-Error<errorcpp@qq.com> 22:18:55
q个应该?lpOverlapped的工作了
湖南-VC(215735031) 22:19:05
我想惛_怎么把WSARecv兌q来
湖南-VC(215735031) 22:19:29
阿姨Q我要一瓶水?
湖南-VC(215735031) 22:19:46
WSARecv Q向pȝh一瓶水
杭州 -(_?26062281) 22:19:48
我看了一部分关于iocp的资?
武汉-Error<errorcpp@qq.com> 22:20:06
IOCP要用Q,Q看没什么用的,
杭州 -(_?26062281) 22:20:18
但是 书上没有 vc 讲的那么生动
湖南-VC(215735031) 22:20:30
你不N姨要_ GetQueuedCompletionStatus 怎么会事先知道你要水Q还把水瓶丢回给你?
武汉-Error<errorcpp@qq.com> 22:21:01
vc臛_沉淀?6 7q了

恩,要是 post动作
武汉-Error<errorcpp@qq.com> 22:22:55
应该是调酒师
北京—文文(15692091) 22:23:13
北京程序员求职。。?br />有没有要招h的~
吉林-伙  22:23:11
你们说下q个完成端口的原理呗
吉林-伙  22:23:19
让我pȝ学习学习
北京—文文(15692091) 22:23:26
完成端口Q?
湖南-VC(215735031) 22:23:23
q里阿姨的地Ҏ个小l节
吉林-伙  22:23:25
用过几次 也不得要?
武汉-Error<errorcpp@qq.com> 22:23:29
你每ơ要调不同的酒水 都要下单

吉林-伙  22:23:40
?br />武汉-Error<errorcpp@qq.com> 22:23:49
每个客户 有自q杯子
湖南-VC(215735031) 22:24:00
你要Q如果之前你要过一ơ,Ҏl完Q这ơ她׃告诉你,0Q还有水你没接完?br />吉林-伙  22:25:33
MSDN的例?nbsp;有木有?
吉林-伙  22:25:45
IOCP?br />吉林-伙  22:25:43
搜哪个API可以搜到
湖南-VC(215735031) 22:25:54
伙你哪里不?br />吉林-伙  22:26:11
我不明白Z么用完成端口 会提高效?br />吉林-伙  22:26:26
׃从头开始?
武汉-Error<errorcpp@qq.com> 22:26:39
OSl护U程?br />湖南-VC(215735031) 22:26:41
最明显的是 ring3 ?nbsp;ring0的缓存交?br />湖南-VC(215735031) 22:27:00
q里臛__了一些细?br />武汉-Error<errorcpp@qq.com> 22:27:04
数据不一定,q个q不iocp也有办法优化
北京—文文(15692091) 22:27:08
伙 你找贝贝
北京—文文(15692091) 22:27:27
我那个时候学完成端口也看不懂
武汉-Error<errorcpp@qq.com> 22:27:26
我觉得是U程?br />湖南-VC(215735031) 22:27:27
可以从头开始, 按你提问的方?br />吉林-伙  22:27:33
好的
湖南-VC(215735031) 22:27:38
刚我是说l自己,和听得懂的h?br />吉林-伙  22:27:55
首先 我创Z个完成端?br />武汉-Error<errorcpp@qq.com> 22:27:58
伙和VC的基?br />湖南-VC(215735031) 22:28:46
恩,q回了一个句柄,创徏Ok,
湖南-VC(215735031) 22:28:52
q个没什么疑问把
吉林-伙  22:29:12
?nbsp;拿socket?br />湖南-VC(215735031) 22:29:42
哪一步了
湖南-VC(215735031) 22:30:08
有外部连接进来,准备兌Q?br />吉林-伙  22:30:19
E等
吉林-伙  22:30:22
我组l下语言
吉林-伙  22:30:26

杭州 -(_?26062281) 22:30:33
ACCEPTEX
吉林-伙  22:30:36
socket我理解成一个文件吧
吉林-伙  22:30:37
呵呵
湖南-VC(215735031) 22:30:41
可以
吉林-伙  22:30:44
q样好说一?br />吉林-伙  22:30:44
?br />杭州 -(_?26062281) 22:30:44
是不
吉林-伙  22:31:12
创徏完成端口q回那个句柄 是 对这个文件进行IO的一个通道
吉林-伙  22:31:28
比如文g是一个瓶?br />吉林-伙  22:31:39
那这个句柄就是瓶口的标志
吉林-伙  22:31:48
q样理解有问题不Q?br />湖南-VC(215735031) 22:32:07
问题是没有,只是接下M很复?br />杭州 -(_?26062281) 22:32:35
兌端口
杭州 -(_?26062281) 22:32:43
是不
吉林-伙  22:33:05
没事 l箋
湖南-VC(215735031) 22:33:13
你文件是一个瓶子,那你跟创建完成的端口兌的时候的关系很模p?br />湖南-VC(215735031) 22:33:38
你上面的例子Q瓶子不是独立的Q把完成端口当成瓶口Q?nbsp;牉|太复杂了
吉林-伙  22:33:40
文g是一个容?br />q州-FEEL(515873448) 22:33:47
哈哈哈哈哈哈…
(来自iPhone QQ:http://mobile.qq.com/v/)
武汉-Error<errorcpp@qq.com> 22:33:51
是句?br />吉林-伙  22:33:52
用来存储各样的数据的
吉林-伙  22:34:17
要不׃U聊?br />吉林-伙  22:34:18
哈哈
湖南-VC(215735031) 22:34:16
恩,q是对的
湖南-VC(215735031) 22:34:23
只是你换个比dŞ?br />吉林-伙  22:34:24
怕有些h?br />杭州 -(_?26062281) 22:34:52
我也学习?br />杭州 -(_?26062281) 22:35:00
我有些地Ҏ看懂
杭州 -(_?26062281) 22:35:04
书上
吉林-伙  22:35:05
创徏完成?br />杭州 -(_?26062281) 22:35:12
vc 写的很生?nbsp;哈哈

吉林-伙  22:35:20
要用一个线E来{待客户端的h 
武汉-Error<errorcpp@qq.com> 22:35:31
今天的mvp
杭州 -(_?26062281) 22:35:37
q个一般算是主U程?

杭州 -(_?26062281) 22:35:46
用来启动 其他的线E?br />吉林-伙  22:35:49
?nbsp;不要U结那些事
吉林-伙  22:35:54

杭州 -(_?26062281) 22:35:55
?br />杭州 -(_?26062281) 22:35:56
?br />吉林-伙  22:36:20
客户端请求连接了 然后呢?
吉林-伙  22:36:33
然后WSARecv投递请求?
湖南-VC(215735031) 22:36:41
你关联这块还没解释清楚呢
湖南-VC(215735031) 22:36:47
跌去,会越来越模糊?br />吉林-伙  22:37:01
把完成端口和文g兌h
吉林-伙  22:37:07
用的不就是Createxxxxxxxxxxxx吗?
湖南-VC(215735031) 22:37:08
是接收q接后,准备工作要做?br />湖南-VC(215735031) 22:37:34
恩,你说的是“兌”Q还是真的能具体到细节呢
吉林-伙  22:37:50
具体l节
吉林-伙  22:38:00
U聊?br />吉林-伙  22:38:03
q里说太烦了
湖南-VC(215735031) 22:38:05
我反问你Qؓ什么要兌Q关联以后在哪里使用
吉林-伙  22:38:12
OK
湖南-VC(215735031) 22:38:25
可以
武汉-Error<errorcpp@qq.com> 22:39:49
火神大大的坏
武汉-Error<errorcpp@qq.com> 22:39:53
一个去学了Q,Q?br />吉林-伙  22:40:04

武汉-Error<errorcpp@qq.com> 22:40:36
p么点我先发博客去了
武汉-Error<errorcpp@qq.com> 22:40:36
p么点我先发博客去了
杭州 -(_?26062281) 22:40:56
兌以后 ׃ؓ什么要WSARECV
杭州 -(_?26062281) 22:41:09
不是有线E吗
南昌-贝贝(1125591) 22:41:39
L被动?br />南昌-贝贝(1125591) 22:41:50
被动操作要投递请?br />武汉-Error<errorcpp@qq.com> 22:43:13
貌似只有IOCP ?nbsp;overlaped ?nbsp;发?br />武汉-Error<errorcpp@qq.com> 22:43:17
是投递的
武汉-Error<errorcpp@qq.com> 22:43:30
其他几个异步 发送都是同?br />杭州 -(_?26062281) 22:44:18

杭州 -(_?26062281) 22:44:34

杭州 -(_?26062281) 22:44:42
书上的代?br />
杭州 -(_?26062281) 22:44:57
一个是ȝE中?br />北京—文文(15692091) 22:45:07
贝贝 为啥当初我问你的时候你只l我两页代码让我自己看呢~~
杭州 -(_?26062281) 22:45:07
一个是U程里面?br />杭州 -(_?26062281) 22:45:21
::WSARecv(pPerHandle->s, &buf, 1, &dwTrans, &nFlags, &pPerIO->ol, NULL);
杭州 -(_?26062281) 22:45:28
都有q个函数
南昌-贝贝(1125591) 22:45:28
完成端口?  re:文文
武汉-Error<errorcpp@qq.com> 22:45:30
应ؓ~Z讨论环境
杭州 -(_?26062281) 22:45:37
接受有什么不?br />武汉-Error<errorcpp@qq.com> 22:45:39
q也是ؓ啥我喜欢在群里边?br />武汉-Error<errorcpp@qq.com> 22:45:48
不喜Ƣ私聊的原因
杭州 -(_?26062281) 22:45:58
我就卡在q个地方 其他都理解了
武汉-Error<errorcpp@qq.com> 22:46:00
聊是发散的
杭州 -(_?26062281) 22:46:07
求教
武汉-Error<errorcpp@qq.com> 22:46:33
我的个h理解
南昌-贝贝(1125591) 22:46:39
投递一个异步读,在完成时会添加完成端口队?br />武汉-Error<errorcpp@qq.com> 22:46:55
你post以后  由OS后台d?nbsp;做实际的操作
武汉-Error<errorcpp@qq.com> 22:47:09
然后你通过Get××× 获取到这个结?br />武汉-Error<errorcpp@qq.com> 22:47:17
如果不用IOCP
武汉-Error<errorcpp@qq.com> 22:47:46
你就要自q护post队列  自己用线E池操作 自己枷锁  然后q是cM?nbsp;自己写一?nbsp;Get××
杭州 -(_?26062281) 22:47:57
也就是说 ȝE中的WSARecv 是投递到队列中的
武汉-Error<errorcpp@qq.com> 22:48:30
贝贝比较权威
南昌-贝贝(1125591) 22:49:43
所有被动操?心须保持L存在h,(完成了立x递新h)
杭州 -(_?26062281) 22:49:50
q个句话 要记录下?br />杭州 -(_?26062281) 22:50:58
对照代码?br />杭州 -(_?26062281) 22:51:02
我理解下
武汉-Error<errorcpp@qq.com> 22:51:16
你们说伙是不是大大的坏




Enic 2011-12-09 23:01 发表评论
]]>
gethostbyname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术)http://www.shnenglu.com/Error/articles/161780.htmlEnicEnicThu, 08 Dec 2011 10:17:00 GMThttp://www.shnenglu.com/Error/articles/161780.htmlhttp://www.shnenglu.com/Error/comments/161780.htmlhttp://www.shnenglu.com/Error/articles/161780.html#Feedback0http://www.shnenglu.com/Error/comments/commentRss/161780.htmlhttp://www.shnenglu.com/Error/services/trackbacks/161780.html
中山-疯子(510776002)  17:23:00
Z么我q样获得不了ipQ到底哪里错?img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/E9BIPM$_`9}`VS07`VD9H1F.gif" sysface="5" />Q试了n?br />hos = gethostbyname("http://www.baidu.com/");
int i=0;
while(hos->h_addr_list[i]!=0)
{
int * wIP=(int *)hos->h_addr_list[i];
addr=(in_addr *)wIP;
//str=inet_ntoa(*addr);
erfei.Format("序号: %d\tip: %x\n",i,*addr);
printf(erfei.GetBuffer());
i++;
}
深圳-守?1015558947)  17:23:42
下个断点 自己看下 
成都-大山(54130892)  17:23:47
初始化网l环境了吗?


深圳-守?1015558947)  17:24:21
gethostbyname 可以直接用吧 q要初始化网l环境?Q?
深圳-守?1015558947)  17:24:53
对了 如果你上|用的是代理 gethostbyname q回的貌似是代理服务器的地址
中山-疯子(510776002)  17:25:03
哇,试出来了?br />应该?nbsp;gethostbyname("http://www.baidu.com/");
改ؓ   gethostbyname("www.baidu.com");
中山-疯子(510776002)  17:25:32
可这是ؓ什么呢Q加上http头就不行
深圳-守?1015558947)  17:25:38
才看出来 你居然将URL当做 ...
中山-疯子(510776002)  17:25:48
求解?br />成都-大山(54130892)  17:26:02
http不是|址的一部分好不
武汉-Error<errorcpp@qq.com>  17:26:26
host
重庆-山士(369347512)  17:26:28
是个协议
(QQ for Pad支持讨论l会话啦!http://im.qq.com/pad) 
中山-疯子(510776002)  17:26:34
现在才知?img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/)W_[PKS_35XA~%$SQ0_SRK9.gif" sysface="38" />
武汉-Error<errorcpp@qq.com>  17:26:35
you know ?
武汉-Error<errorcpp@qq.com>  17:26:38
host name
南_deny(547792055)  17:26:47
疯子在搞什么程序?

中山-疯子(510776002)  17:26:47
i know
中山-疯子(510776002)  17:27:01
是获得域名ip
吉林-伙 (694129464)  17:52:09
呵呵 
吉林-伙 (694129464)  17:52:29
看你们讨论问?br />吉林-伙 (694129464)  17:52:37
我就能知道你们每个h的性格
深圳-守?1015558947)  17:55:13
说说?nbsp;我是啥性格
吉林-伙 (694129464)  17:55:39
呵呵 其实q里的很多h 都有一个通病 包括我在?br />吉林-伙 (694129464)  17:56:07
我就反思过 然后我发C们也一?nbsp;哈哈
中山-疯子(510776002)  17:56:11
说吧Q自我检?br />吉林-伙 (694129464)  17:56:48
你们自己惛_
吉林-伙 (694129464)  17:56:52
Z么要我说?br />吉林-伙 (694129464)  17:57:12
我说出来?nbsp;有些得自己有q毛?nbsp;改了 有些得在心里骂我
中山-疯子(510776002)  17:57:15
我问的问题太单了
吉林-伙 (694129464)  17:57:22
不是
中山-疯子(510776002)  17:58:03
哎,说吧Q我不?br />吉林-伙 (694129464)  17:58:13

吉林-伙 (694129464)  17:59:21
自己惛_ 其实挺好玩的
中山-疯子(510776002)  17:59:52
我就是吃得太?img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/)QN1UH78VKP2T7)IA]ZM(FW.gif" sysface="97" />
吉林-伙 (694129464)  18:00:00
要敢于正视自q~点 自己的不?br />深圳-守?1015558947)  18:01:47
你直奔重点行?nbsp;看你说了一?nbsp;全是废话
吉林-伙 (694129464)  18:02:25

吉林-伙 (694129464)  18:02:35
其实我事闲的蛋疼
深圳-守?1015558947)  18:02:56
你写驱动的呢 
武汉-Error<errorcpp@qq.com>  18:02:54
哥啥问题
武汉-Error<errorcpp@qq.com>  18:03:06
哥是比较厚脸皮的
武汉-Error<errorcpp@qq.com>  18:03:12
不怕被鄙视
武汉-Error<errorcpp@qq.com>  18:03:19

吉林-伙 (694129464)  18:04:29
我就吹吹牛B你们怎么q都刨根问底儿呢 你们是刨栚w底儿栏目l的?br />武汉-Error<errorcpp@qq.com>  18:05:01
在这里被鄙视L来被鄙视的代h?br />武汉-Error<errorcpp@qq.com>  18:05:04
q个的清楚
武汉-Error<errorcpp@qq.com>  18:05:18
求鄙?br />武汉-Error<errorcpp@qq.com>  18:05:21

吉林-伙 (694129464)  18:06:16

吉林-伙 (694129464)  18:06:20
从这句话?br />吉林-伙 (694129464)  18:06:25
你能看出什么不Q?br />吉林-伙 (694129464)  18:06:34
拿守候开刀 
吉林-伙 (694129464)  18:06:35
哈哈
武汉-Error<errorcpp@qq.com>  18:06:42
q个人很牛?
徏-ldh(1553408169)  18:06:49
Z么一定要被鄙?br />吉林-伙 (694129464)  18:06:52
你看看上下文
武汉-Error<errorcpp@qq.com>  18:07:03
q是自嘲Q也是自信的表现
吉林-伙 (694129464)  18:07:29
我觉得这是不敢正视自q不
武汉-Error<errorcpp@qq.com>  18:08:06
不一?br />深圳-守?1015558947)  18:08:11
哈哈 被鄙视了 
吉林-伙 (694129464)  18:08:21
哈哈
吉林-伙 (694129464)  18:08:30
其实你最开始看出来?br />吉林-伙 (694129464)  18:08:41
只不q没认ؓq个地方有错
吉林-伙 (694129464)  18:09:21
因ؓ你ƈ不确定gethostname的参数到底应该怎么?br />吉林-伙 (694129464)  18:09:46
{?nbsp;疯子 发出解决Ҏ?nbsp;.........
吉林-伙 (694129464)  18:09:50
不说?nbsp;?br />深圳-守?1015558947)  18:10:03

深圳-守?1015558947)  18:10:31
知道p?nbsp;q嘛说出来呢 丑大?br />湖南-VC(215735031)  18:10:48
哈哈Q疯子的问题我没注意到细?br />深圳-守?1015558947)  18:10:53
装逼遭雷劈?nbsp;以后我要低调
湖南-VC(215735031)  18:10:51
所以没发言Q?br />湖南-VC(215735031)  18:10:58
但是我把他的改装了下Q?br />湖南-VC(215735031)  18:11:02
他的代码~码也有问题
湖南-VC(215735031)  18:11:18

武汉-Error<errorcpp@qq.com>  18:11:26
q是作ؓ的尬Q,Q?br />湖南-VC(215735031)  18:11:31
我改完后是这P
武汉-Error<errorcpp@qq.com>  18:11:35
一个神Q是不能犯错的,Q,
湖南-VC(215735031)  18:11:43
我自p样写的,没留意他?br />武汉-Error<errorcpp@qq.com>  18:12:03
l论?br />湖南-VC(215735031)  18:12:29
你看他的发言Q他之前说能取到癑ֺ的一个IP
武汉-Error<errorcpp@qq.com>  18:12:40
今天的会议ȝ
《gethostname 获取不到ip地址 ?nbsp;url and 伙神d术(VC专业? 伙神d术)?br />湖南-VC(215735031)  18:12:41
那个时候他一直就有填HTTP?br />湖南-VC(215735031)  18:12:51
所以不好说
武汉-Error<errorcpp@qq.com>  18:13:37
填写 你这?nbsp;应该没问题把
武汉-Error<errorcpp@qq.com>  18:13:48
反正是走nds协议Lname
湖南-VC(215735031)  18:13:53

武汉-Error<errorcpp@qq.com>  18:14:04
完整url是不对的
湖南-VC(215735031)  18:14:10

湖南-VC(215735031)  18:14:17
109是我本地IP
武汉-Error<errorcpp@qq.com>  18:14:34
服务器架在哪
深圳-守?1015558947)  18:14:40
他都不调用WSAGetLastError 查看错误码的 
湖南-VC(215735031)  18:14:37
 
深圳-守?1015558947)  18:14:42
囧死?br />湖南-VC(215735031)  18:14:45
妈的 什么时候又x?br />深圳-守?1015558947)  18:14:58
else里要?nbsp;WSAGetLastError 输出错误码代?br />武汉-Error<errorcpp@qq.com>  18:14:58
淡定Q,Q?br />武汉-Error<errorcpp@qq.com>  18:15:20
深圳-守?1015558947)  18:14:58
else里要?nbsp;WSAGetLastError 输出错误码代?br />
Ch都不写,p我以前不?nbsp;assert一?br />深圳-守?1015558947)  18:15:31
我被鄙视?br />深圳-守?1015558947)  18:15:47

武汉-Error<errorcpp@qq.com>  18:15:48
gethostname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术)
湖南-VC(215735031)  18:15:49
我的代码是复制的疯子的,攚w过Q什么时候去的http://_自己也没留意
湖南-VC(215735031)  18:15:53
所以没回答他的问题
武汉-Error<errorcpp@qq.com>  18:16:17
《gethostname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术)?br />
title 需要加上守候大么Q?br />
嗯,我以前的习惯是自己测试在回答
武汉-Error<errorcpp@qq.com>  18:16:22
现在也tmd躁?br />武汉-Error<errorcpp@qq.com>  18:16:24
要改
武汉-Error<errorcpp@qq.com>  18:16:17
《gethostname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术)?br />
title 需要加上守候大么Q?br />
嗯,我以前的习惯是自己测试在回答
武汉-Error<errorcpp@qq.com>  18:16:22
现在也tmd躁?br />武汉-Error<errorcpp@qq.com>  18:16:24
要改
深圳-守?1015558947)  18:17:09

深圳-守?1015558947)  18:17:17
qAPI 我日?nbsp;
武汉-Error<errorcpp@qq.com>  18:17:34
temlate是啥
深圳-守?1015558947)  18:17:43
15个参?...
深圳-守?1015558947)  18:18:11
模板 
深圳-守?1015558947)  18:18:28
囑Ş里面说的 ROI 即ؓ感兴的对象
武汉-Error<errorcpp@qq.com>  18:18:33
牛?br />湖南-VC(215735031)  18:18:36
3D~程Q这点参数正?br />深圳-守?1015558947)  18:18:41
其实我也不懂
武汉-Error<errorcpp@qq.com>  18:18:45
q是哪个库?
武汉-Error<errorcpp@qq.com>  18:18:54
boostQ?br />武汉-Error<errorcpp@qq.com>  18:19:06
3D的都一套一套的
深圳-守?1015558947)  18:19:11
HDevelop 装好的API
武汉-Error<errorcpp@qq.com>  18:19:55
真现?br />武汉-Error<errorcpp@qq.com>  18:20:06
先进
深圳-守?1015558947)  18:20:17
创徏一个学习的对象 以金字塔的Ş?nbsp;
深圳-守?1015558947)  18:20:31
囑Ş匚w法里的 金字塔算法创建的模板
武汉-Error<errorcpp@qq.com>  18:20:41
《gethostname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术) 
?br />http://www.shnenglu.com/Error/articles/161780.html
深圳-守?1015558947)  18:20:52
他妈?nbsp;3U尺?br />武汉-Error<errorcpp@qq.com>  18:21:13
囑փ的东西得慢慢玩,Q,没基搞不动的Q,Q?br />武汉-Error<errorcpp@qq.com>  18:21:23
找PM要外援吧
武汉-Error<errorcpp@qq.com>  18:21:30
不想目要砸?br />湖南-VC(215735031)  18:21:55
你就不能把我的剔掉么
深圳-守?1015558947)  18:22:11
不着
深圳-守?1015558947)  18:22:25
不找 我搞的差不多?nbsp;
武汉-Error<errorcpp@qq.com>  18:22:39
不踢 除非你强烈要?br />吉林-伙 (694129464)  18:23:09
你要被TQ?br />吉林-伙 (694129464)  18:23:13
可以?br />武汉-Error<errorcpp@qq.com>  18:23:15

武汉-Error<errorcpp@qq.com>  18:23:25
《gethostname 获取不到ip地址 & 被url坑了 & 伙神d术(VC专业? 伙神d术) 
?br /> http://www.shnenglu.com/Error/articles/161780.html
武汉-不语(86990476)  18:23:25

武汉-Error<errorcpp@qq.com>  18:23:27
他说q个
深圳-守?1015558947)  18:24:21
伙q没下班Q?br />吉林-伙 (694129464)  18:24:25
6点半
吉林-伙 (694129464)  18:24:33
哈哈 明天周五?nbsp;爽啊
吉林-伙 (694129464)  18:24:53
我知道他说这?br />吉林-伙 (694129464)  18:25:00
我事故意曲解他的意?nbsp;哈哈
武汉-Error<errorcpp@qq.com>  18:25:53
明天讨论马
武汉-Error<errorcpp@qq.com>  18:25:55
惛_没?
吉林-伙 (694129464)  18:26:37
你们?nbsp;守候如果以后有针对?nbsp;
武汉-Error<errorcpp@qq.com>  18:26:43
其实今天q个讨论应该q没l束
吉林-伙 (694129464)  18:26:49
那守候这个h又多了一个缺?br />吉林-伙 (694129464)  18:27:03

武汉-Error<errorcpp@qq.com>  18:27:08
最后最沉稳?nbsp;湖南VC大哥提出来的观点
吉林-伙 (694129464)  18:27:11
晚上回去l箋讨论
武汉-Error<errorcpp@qq.com>  18:27:18
可以l箋延下去
深圳-守?1015558947)  18:27:24

武汉-Error<errorcpp@qq.com>  18:27:38
守候应该是
湖南-VC(215735031)  18:27:38
我用的二U域?br />湖南-VC(215735031)  18:27:42
他解析的IP不对
武汉-Error<errorcpp@qq.com>  18:28:10
嗯,q个要去看nds协议规范?br />湖南-VC(215735031)  18:28:16

湖南-VC(215735031)  18:28:21
。现在又对了
湖南-VC(215735031)  18:28:27
它这个还是灵zȝ?br />武汉-Error<errorcpp@qq.com>  18:28:32
坑了爹了Q,Q?br />湖南-VC(215735031)  18:28:43

湖南-VC(215735031)  18:29:22
q也是我没回的原因, 我当时取?ơ,也只?ơ对
武汉-Error<errorcpp@qq.com>  18:29:26
刚刚哪次  查出?nbsp;GetLasterror 没问题么Q?br />武汉-Error<errorcpp@qq.com>  18:29:44
我草 q里q真的有个吭
湖南-VC(215735031)  18:29:56
应该不是错,可能是你提的DNA问题搞不?br />湖南-VC(215735031)  18:30:07
我加个http看看
武汉-Error<errorcpp@qq.com>  18:30:15
?br />湖南-VC(215735031)  18:30:35

湖南-VC(215735031)  18:30:52

湖南-VC(215735031)  18:30:56
15分钟前发?br />湖南-VC(215735031)  18:31:13
q个162应该是美步域名的某个L的IP
武汉-Error<errorcpp@qq.com>  18:32:43
他应该每ơ都是返回解析结果的
武汉-Error<errorcpp@qq.com>  18:34:12
我知道了Q可能你的域名提供商 不稳?br />武汉-Error<errorcpp@qq.com>  18:34:43
我试试看
湖南-VC(215735031)  18:35:09

湖南-VC(215735031)  18:35:37
是有可能服务器正在解析,那个时候。证据是Q我一会再间断性测试一二次
武汉-Error<errorcpp@qq.com>  18:58:53

武汉-Error<errorcpp@qq.com>  18:59:00
实验癑ֺ是每ơ都正确?br />武汉-Error<errorcpp@qq.com>  18:59:23
湖南VC应该是域名商的问题了 Q回ӞQ,nnd



Enic 2011-12-08 18:17 发表评论
]]>
WM_COPYDATA 的一些细?׃n内存 生命周期{等 杂论 QVC专业? 贝神参与Q?/title><link>http://www.shnenglu.com/Error/articles/161674.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Wed, 07 Dec 2011 09:11:00 GMT</pubDate><guid>http://www.shnenglu.com/Error/articles/161674.html</guid><wfw:comment>http://www.shnenglu.com/Error/comments/161674.html</wfw:comment><comments>http://www.shnenglu.com/Error/articles/161674.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Error/comments/commentRss/161674.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Error/services/trackbacks/161674.html</trackback:ping><description><![CDATA[<!--StartFragment --> <div> <p>武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>> 16:37:38 <br />?/p> <p>讨论一个VC的问?nbsp; <br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>> 16:37:51 <br />夸进E的 WM_DATACOPY <br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>> 16:38:00 <br />的内存管?<br />武汉-Error<<a href="mailto:errorcpp@qq.com">errorcpp@qq.com</a>> 16:38:07 <br />谁先发言Q?<br /></p><br />南昌-贝贝(1125591)  16:38:29<br />q程内没必要用这?br />湖南-VC(215735031)  16:39:03<br />不知道把clicpsrv服务xQ这个还会不会调用成?br />武汉-Error<errorcpp@qq.com>  16:39:03<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/D}5RZEM4MU~ZS1Q]N0]4RFB.gif" /> 那内存是那个牛管理的<br />南昌-贝贝(1125591)  16:39:20<br />׃n内存?br />武汉-不语(86990476)  16:39:22<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/D}5RZEM4MU~ZS1Q]N0]4RFB.gif" /><br />武汉-Error<errorcpp@qq.com>  16:39:30<br />如果偶没记错<br />武汉-Error<errorcpp@qq.com>  16:39:54<br />|狐的代?nbsp;?nbsp;在把栈上的一块内存的地址<br />武汉-Error<errorcpp@qq.com>  16:40:08<br />当作copydatal构体的指针?br />湖南-VC(215735031)  16:40:16<br />error再搞|狐Q?br />武汉-Error<errorcpp@qq.com>  16:40:17<br />sendmessage<br />武汉-Error<errorcpp@qq.com>  16:40:19<br />出去?br />武汉-Error<errorcpp@qq.com>  16:40:31<br />q样p?br />武汉-Error<errorcpp@qq.com>  16:40:43<br />pȝ 应该接管了这块内?br />武汉-Error<errorcpp@qq.com>  16:40:55<br />谁知道这其中是怎么理?br />湖南-VC(215735031)  16:41:04<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/]BYE9X1]PEGX{5](K(2{VI4.jpg" /><br />武汉-Error<errorcpp@qq.com>  16:41:07<br />是的Q看了好久了?br />最q开始看客户端了<br />武汉-Error<errorcpp@qq.com>  16:41:34<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/D}5RZEM4MU~ZS1Q]N0]4RFB.gif" /> 其实我只关系生命周期<br />武汉-Error<errorcpp@qq.com>  16:41:46<br />无所不能的贝贝神<br />武汉-Error<errorcpp@qq.com>  16:41:48<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/M_([R88@7TKFQB(KV(X6SGF.gif" /><br />南昌-贝贝(1125591)  16:42:13<br />是׃n内存呀<br />中山-疯子(510776002)  16:42:03<br />贝神学的太快?br />武汉-Error<errorcpp@qq.com>  16:42:42<br />?nbsp;假设他就是共享内?br />那是谁申?nbsp;谁释攄呢?<br />南昌-贝贝(1125591)  16:42:57<br />发送者申?发送者释?br />武汉-Error<errorcpp@qq.com>  16:43:56<br />嗯,假设是发送至甌 发送者释?br />那h安里放的是一个指针地址Q接受的时候咋成了׃n内存?br /><br />偶去看看接收代码<br />南昌-贝贝(1125591)  16:44:57<br />q程使用的内存都是由pȝ在物理存储里面调拨的....然后映射到这个进E的...pȝ多映一个进E?有什么不可以的咧?<br />中山-疯子(510776002)  16:44:55<br />仙\头谁ؓ峎ͼ一见贝道成空<br />武汉-Error<errorcpp@qq.com>  16:45:57<br />那就是说Q发送的l构?nbsp;?nbsp;接受的结构体 的那个指针域<br />武汉-Error<errorcpp@qq.com>  16:46:06<br />可能不是一个?br />武汉-Error<errorcpp@qq.com>  16:46:09<br />对吧Q?br />南昌-贝贝(1125591)  16:46:18<br />什么东?br />南昌-贝贝(1125591)  16:46:20<br />听不?br />湖南-VC(215735031)  16:46:43<br />Aq程里发的数据的内存地址 跟B接收的内存地址<br />南昌-贝贝(1125591)  16:46:52<br />发送的时候把q个l构体中指针指向的内存块(指定大小),映射到目标进E?nbsp;<br />中山-疯子(510776002)  16:47:10<br />对了Q问下如何追t到WM_COPYDATA的处理函敎ͼq个问题难了我好久,一直没有解?br />武汉-Error<errorcpp@qq.com>  16:48:11<br />嗯,贝贝说的原理。偶懂了Q偶现在想确认下q个现象Q,Q?br /><br />比较懒,没写试q接问了,Q,<br />见谅Q,Q?br /><br /><br />武汉-Error<errorcpp@qq.com>  16:48:20<br />typedef struct tagCOPYDATASTRUCT { <br />    ULONG_PTR dwData; <br />    DWORD     cbData; <br />    PVOID     lpData; <br />} COPYDATASTRUCT, *PCOPYDATASTRUCT; <br /><br /><br />q个l构体的   dwData<br />中山-疯子(510776002)  16:48:21<br />应ؓ是在另一个进E中Q不知怎么?br />湖南-VC(215735031)  16:48:41<br />恩,你测试的时候顺便测试下我那个疑问哈<br />南昌-贝贝(1125591)  16:48:47<br />dwData 是传一个数?br />武汉-Error<errorcpp@qq.com>  16:48:46<br />在发送进E的?nbsp; ?nbsp;在另一q程?nbsp;收到的?br />武汉-Error<errorcpp@qq.com>  16:48:52<br />是不相同?br />武汉-Error<errorcpp@qq.com>  16:49:13<br />湖南 是和我考虑的一个问题吧Q?br />湖南-VC(215735031)  16:49:28<br />是的Q?br />湖南-VC(215735031)  16:49:42<br />不过你观察的是它们通信的过E?br />武汉-Error<errorcpp@qq.com>  16:49:51<br />嗯,我看的是现象<br />湖南-VC(215735031)  16:50:00<br />我还带观察下这个过E是不是由剪贴板服务l护?br />中山-疯子(510776002)  16:50:01<br />是另一个进E处理WM_COPYDATA的函?br />武汉-Error<errorcpp@qq.com>  16:50:21<br />q有资源释放的过E?br />湖南-VC(215735031)  16:50:33<br />如果q个服务x了,q有没有?br />武汉-Error<errorcpp@qq.com>  16:50:38<br />按照贝贝说的来理解,我就懂了一点了<br />湖南-VC(215735031)  16:51:15<br />说到底,q是WINDOWS的内存划分不清晰啊?br />湖南-VC(215735031)  16:51:27<br />׃n内存Q内存地址是多?br />湖南-VC(215735031)  16:51:57<br />kernel32.dll cMq种东东Q系l都把它们映到q程?nbsp;0x800以上<br />武汉-Error<errorcpp@qq.com>  16:52:06<br />send的时候OS只是映射了一?br />当被映射的内存释放以后,自然数据失效了<br /><br />不过q还有一个没解决的问题,数据失效了,映射又由谁清?br />湖南-VC(215735031)  16:52:23<br />按贝贝说的说法,剪脓板内容也应该映射到某个地址?br />南昌-贝贝(1125591)  16:52:24<br />kernel32.dll cMq种东东Q系l都把它们映到q程?nbsp;0x800以上<br />谁说?br />湖南-VC(215735031)  16:52:36<br />默认情况<br />南昌-贝贝(1125591)  16:52:50<br />0x80000000 以上错<br />武汉-Error<errorcpp@qq.com>  16:52:56<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/D}5RZEM4MU~ZS1Q]N0]4RFB.gif" />敢在贝爷面前玩小聪明<br />南昌-贝贝(1125591)  16:53:07<br />剪脓版不一定是׃n内存<br />武汉-Error<errorcpp@qq.com>  16:53:22<br />贝贝 偶的问题q没回答完毕?br /><br />映射我理解了<br />湖南-VC(215735031)  16:53:32<br />你理解什么了?br />武汉-Error<errorcpp@qq.com>  16:53:36<br />但是q个映射最l还是要?nbsp;取消<br /><br />q一部咋?br />湖南-VC(215735031)  16:53:47<br />贝贝刚都说了Q?nbsp;<img alt="" src="file:///D:/QQ2010/Users/85126585/Image/M(}NK)QS)V89(9`XBUL_N4D.jpg" /><br />武汉-Error<errorcpp@qq.com>  16:54:03<br />是OS没有拯send的数据,只是把两个进E的地址映射了下<br />武汉-Error<errorcpp@qq.com>  16:54:26<br />偶不关系那个q程Q我值关注数据传递的l果<br />湖南-VC(215735031)  16:54:36<br />每一个进E都可以讉K剪脓板的数据Q?br />湖南-VC(215735031)  16:54:50<br />你Aq程发送的数据肯定也是q了剪脓板的<br />武汉-Error<errorcpp@qq.com>  16:55:02<br />现在的结果:<br />1.没有传?br />2.是地址映射<br />3.pȝ完成的映?br />4.我不知道马时候映被取消<br />湖南-VC(215735031)  16:55:32<br />大哥Q我们的疑问其实一?br />武汉-Error<errorcpp@qq.com>  16:55:56<br />否则我大?nbsp;发送DATACOPY q样两个q程的数据不是全部被映射了,Q,<br /><br />所以,偶要知道q个映射啥时候取?br />湖南-VC(215735031)  16:56:15<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/KY4XTWBE3}NPKJE4}A5[7IR.jpg" /><br />湖南-VC(215735031)  16:56:22<br />A B 是进E?nbsp;C是剪贴板<br />南昌-贝贝(1125591)  16:56:31<br /><img alt="" src="file:///D:/QQ2010/Users/85126585/Image/M(}NK)QS)V89(9`XBUL_N4D.jpg" />我也不知道怎么解释,可能我说的不准确,是因为我要表辄?br /><br />如果你在C本中复制一个字W串那是׃n内存(服务里面?<br />如果你的E序会接收处理剪贴版消息,那会有另一U行?..大多Ch都应该见q?在WORD中复制表?在词本中_脓是纯文字 ,在QQ上粘贴是囑փ<br />南昌-贝贝(1125591)  16:56:41<br />如果单纯׃n一?那怎么做得?br />湖南-VC(215735031)  16:57:17<br />我记得在VC中用WM_COPYDATA 要显C的指定<br />武汉-Error<errorcpp@qq.com>  16:57:21<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/T6OQ[5(U9Z_O]6A0_~KE5{W.gif" /> q是没有解释 4.映射Q共享)啥时候取消嘛<br />湖南-VC(215735031)  16:57:45<br />q可能说明了Q?nbsp;<img alt="" src="file:///D:/QQ2010/Users/85126585/Image/HFV9YF4F1FSVH3BC@990EFY.jpg" /><br />南昌-贝贝(1125591)  16:57:47<br />我知道水主要的疑问是 WM_COPYDATA 何时取消映射<br />  只需要回{你(PostMessage->WM_COPYDATA是永不会成功?<br />武汉-Error<errorcpp@qq.com>  16:58:20<br />sendq回的时候么<br /><br />列个是同步的Q?br />武汉-Error<errorcpp@qq.com>  16:58:29<br />ok我的问题差不多解决了<br />湖南-VC(215735031)  16:58:31<br />估计每个q程讉K到的剪脓板内存都是系l分配的一?#8221;映像“<br />武汉-Error<errorcpp@qq.com>  16:58:52<br />VC?nbsp;?nbsp;ole对象马相关 q有com模型Q,Q这个话题老大了,Q,<br />南昌-贝贝(1125591)  16:59:13<br />COM我也是笨?  太久q了<br />湖南-VC(215735031)  16:59:49<br />我的疑问是,pȝl每个进E都留了一个后门,可以讉K一块共同的内存Q?br />武汉-Error<errorcpp@qq.com>  17:00:04<br />ole模型好像是这?br />湖南-VC(215735031)  17:00:23<br />q是q程需要访?#8220;剪脓?#8221;的时候,昄的给它映一?br />中山-疯子(510776002)  17:00:34<br />q踪WM_COPYDATA<img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/52W[C~~FFQ[27)18U93ZOWB.gif" sysface="111" /><br />武汉-Error<errorcpp@qq.com>  17:01:05<br /> 中山-疯子(510776002)  17:00:34<br />q踪WM_COPYDATA<img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/52W[C~~FFQ[27)18U93ZOWB.gif" sysface="111" /><br /><br />自己打log<br />湖南-VC(215735031)  17:01:11<br />如果是后门,水神你那个A发vQB收到的就是同一个地址才对<br />武汉-Error<errorcpp@qq.com>  17:01:13<br />或者用windbg<br />武汉-Error<errorcpp@qq.com>  17:01:26<br />是映?br />武汉-Error<errorcpp@qq.com>  17:01:31<br />不同的进E?br />武汉-Error<errorcpp@qq.com>  17:01:39<br />地址I间不同<br />湖南-VC(215735031)  17:01:43<br />如果是谁用到Q给谁映,那A发v的被映射到系l,再被映射到Bq程<br />武汉-Error<errorcpp@qq.com>  17:01:49<br />是的<br />武汉-Error<errorcpp@qq.com>  17:01:54<br />谁send<br />武汉-Error<errorcpp@qq.com>  17:01:59<br />岁映?br />湖南-VC(215735031)  17:02:18<br />我现在不好写试Q?nbsp;你A发v的, 剪脓板能看到?br />武汉-Error<errorcpp@qq.com>  17:02:34<br />不然生命周期不好控制<br /><br />以上是贝语录心?br /><br />我现在也没环境测试,Q, <br /><!--StartFragment --> <div>湖南-VC(215735031) 17:03:04 <br />我晚上测试下<br />湖南-VC(215735031) 17:03:16 <br />如果W三方剪贴板能读到这部分数据的话Q?br />武汉-Error<errorcpp@qq.com> 17:03:39 <br />映射是系l控制的Q这个不好说<br />吉林-伙? 17:03:47 <br />不可能是剪脓板的<br />湖南-VC(215735031) 17:04:05 <br />伙惌SendMesaage指定了HWNDQ?br />吉林-伙? 17:04:07 <br />q程间通信 有管?nbsp;有消?nbsp;有剪贴板 有socket {等<br />吉林-伙? 17:04:23 <br />都把消息和剪贴板分开来说?br />吉林-伙? 17:04:48 <br />q有 用SendMessage WM_COPYDATA 数据量大会死?br />吉林-伙? 17:05:59 <br />WM_COPYDATA是内存映射实现?br />中山-疯子(510776002) 17:06:52 <br />q程通信比较好的话就是本机网l通信127.0.0.1<br />成都-愿(130048) 17:07:23 <br />命名道?br />武汉-Error<errorcpp@qq.com> 17:07:36 <br />q样有开销<br />武汉-Error<errorcpp@qq.com> 17:07:44 <br />映射是开销最的<br />湖南-VC(215735031) 17:08:06 <br />WM_COPYDATA要指定目标ᅢQPQ?br />湖南-VC(215735031) 17:08:22 <br />跟所有进E都能访问到的剪贴板方式不一?br />中山-疯子(510776002) 17:08:23 <br />大数据就在磁盘徏立个文gQƈ通过WM_COPYDATA通知Ҏ<br />南昌-贝贝(1125591) 17:08:54 <br />道的内部实现就是共享内?br />南昌-贝贝(1125591) 17:09:08 <br />本机道<br />武汉-Error<errorcpp@qq.com> 17:09:27 <br />?nbsp;本地回环soket呢?<br />武汉-Error<errorcpp@qq.com> 17:09:35 <br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/(1{D$M8LMQ9{JDUTTUT%%OU.gif" /><br />南昌-贝贝(1125591) 17:09:51 <br />回环好像也是׃n内存<br />南昌-贝贝(1125591) 17:10:03 <br />回环Socket qTDI层好像都没到<br />吉林-伙? 17:10:15 <br />TDIQ?br />南昌-贝贝(1125591) 17:10:37 <br />NDIS层一定没?br />南昌-贝贝(1125591) 17:10:46 <br />TDI层不记得...<br /><!--StartFragment --> <div>湖南-VC(215735031)  17:11:19<br />贝贝QKner.dll不是映射800地址Q那是哪<br />南昌-贝贝(1125591)  17:11:29<br />你是?00?<br />湖南-VC(215735031)  17:11:35<br />XP?c8以上<br />南昌-贝贝(1125591)  17:11:49<br />我以Z是说 0x80000000<br />湖南-VC(215735031)  17:11:52<br />我也说的大概Q大概那个段<br />武汉-Error<errorcpp@qq.com>  17:12:01<br />?br /><br />今天的会议我已经做了记录<br />武汉-Error<errorcpp@qq.com>  17:12:07<br />q且发布到网l上?br />吉林-伙 (694129464)  17:12:09<br />元谋人啊 TDI是什么的~写啊?<br />湖南-VC(215735031)  17:12:14<br />那刚q个q程间的映射话,一般会映射到哪个段<br />武汉-Error<errorcpp@qq.com>  17:12:14<br />大家出名了以后不要意?br />吉林-伙 (694129464)  17:12:19<br />贝贝 TDI是什么的~写?br />武汉-Error<errorcpp@qq.com>  17:12:21<br />可ȝ准备下班?br />湖南-VC(215735031)  17:12:27<br />.data ?<br />成都-愿(130048)  17:12:45<br />Trandport Driver Interface<br />南昌-贝贝(1125591)  17:12:50<br />Transport Driver<br />南昌-贝贝(1125591)  17:12:54<br />Interface<br />武汉-Error<errorcpp@qq.com>  17:13:06<br />传输?br />南昌-贝贝(1125591)  17:13:10<br />|络传输层接?br />吉林-伙 (694129464)  17:13:14<br />?br />南昌-贝贝(1125591)  17:13:56<br />Vista以后不徏议关注它.本来是要取消它的.后来为兼Ҏ没取消<br />武汉-Error<errorcpp@qq.com>  17:14:10<br />传输层还是要的吧<br /><br />啥?<br />映射q是 copydata<br />吉林-伙 (694129464)  17:14:14<br />以后搞驱动不行啦<br />吉林-伙 (694129464)  17:14:26<br />ȝ?nbsp;q得Ҏ调试模式才能加蝲<br />吉林-伙 (694129464)  17:14:36<br />要不得{֐<br />吉林-伙 (694129464)  17:14:41<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/E9BIPM$_`9}`VS07`VD9H1F.gif" sysface="5" /><br />武汉-Error<errorcpp@qq.com>  17:15:20<br />物理 链\ |络 传输 会话 应用<br />武汉-Error<errorcpp@qq.com>  17:15:25<br />q差个神马?<br />南昌-贝贝(1125591)  17:15:38<br />Vista 以后的操作系l微软提供了 NDIS Filter 接口.嘿嘿.qo方便了<br />吉林-伙 (694129464)  17:15:38<br />表示<br />吉林-伙 (694129464)  17:15:44<br /><img alt="" src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/X@8}U9MLE}EBUE273)]9PGF.gif" sysface="13" /><br />武汉-Error<errorcpp@qq.com>  17:15:57<br />物理 链\ |络 传输 会话 表示 应用<br />武汉-Error<errorcpp@qq.com>  17:16:01<br />?nbsp;q样对?br />吉林-伙 (694129464)  17:16:16<br />?br />湖南-VC(215735031)  17:16:18<br />大哥 你搞U研?br />武汉-Error<errorcpp@qq.com>  17:16:24<br />q个东西q是有用?br />南昌-贝贝(1125591)  17:16:32<br />嘿嘿.q几个词,我面试别人的时?q考别人呢...<br />   (其实自己也答不来)<br />武汉-Error<errorcpp@qq.com>  17:16:31<br />比如 本地回环<br />武汉-Error<errorcpp@qq.com>  17:16:42<br />只有端口号其作用<br />湖南-VC(215735031)  17:16:54<br />貌似现在WINDOWS通用SOCKET~程化了好几?br />武汉-Error<errorcpp@qq.com>  17:16:57<br />端口?nbsp;主要是在应用?br />武汉-Error<errorcpp@qq.com>  17:17:11<br />ip地址是网l和传输?br />武汉-Error<errorcpp@qq.com>  17:17:21<br />学通了Q还是有用的<br />武汉-不语(86990476)  17:17:22<br />有很多h死在这个问题尚<br />武汉-不语(86990476)  17:17:24<br />?br />武汉-Error<errorcpp@qq.com>  17:17:24<br />不是完全没用 <br />吉林-伙 (694129464)  17:24:49<br />没有我?哈哈<br />吉林-伙 (694129464)  17:24:58<br />我的是问?太NB?/div></div></div><img src ="http://www.shnenglu.com/Error/aggbug/161674.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Error/" target="_blank">Enic</a> 2011-12-07 17:11 <a href="http://www.shnenglu.com/Error/articles/161674.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CreateProcess 传递command??/title><link>http://www.shnenglu.com/Error/articles/161481.html</link><dc:creator>Enic</dc:creator><author>Enic</author><pubDate>Mon, 05 Dec 2011 02:24:00 GMT</pubDate><guid>http://www.shnenglu.com/Error/articles/161481.html</guid><wfw:comment>http://www.shnenglu.com/Error/comments/161481.html</wfw:comment><comments>http://www.shnenglu.com/Error/articles/161481.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Error/comments/commentRss/161481.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Error/services/trackbacks/161481.html</trackback:ping><description><![CDATA[<!--StartFragment --> <div>武汉-Error<errorcpp@qq.com>  10:19:49<br />CreateProcess 怎么l?nbsp;q程传?nbsp;command<br />哈尔?猫猫<wengemima@qq.com>  10:20:12<br />不知?br />中山-疯子(510776002)  10:20:37<br />直接带上命op<br />哈尔?猫猫<wengemima@qq.com>  10:20:44<br />WinExec可以直接在\径里写命令行参数<br />南昌-贝贝(1125591)  10:21:03<br />参数?nbsp;直接填开始运行里面填的东?br />南昌-贝贝(1125591)  10:21:06<br />是命o?br />南昌-贝贝(1125591)  10:21:12<br />参数一不要使用<br />武汉-Error<errorcpp@qq.com>  10:21:15<br /><img src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/D}5RZEM4MU~ZS1Q]N0]4RFB.gif" alt="" /> 是滴<br />武汉-Error<errorcpp@qq.com>  10:21:24<br />我就被参C坑了<br />武汉-Error<errorcpp@qq.com>  10:21:28<br />所以来分n?br />南昌-贝贝(1125591)  10:21:33<br />而且参数二要使用 LPTSTR ,,  CONST 会崩?br />武汉-Error<errorcpp@qq.com>  10:21:43<br />q是贝贝厉害Q走q很多坑<br />南昌-贝贝(1125591)  10:21:54<br />天天撞坑的啦<br />哈尔?猫猫<wengemima@qq.com>  10:21:57<br />只是人家没掉q去<br />南昌-贝贝(1125591)  10:22:03<br />掉了好几?br />南昌-贝贝(1125591)  10:22:08<br />又爬出来?br />深圳-雪锋(632006142)  10:22:36<br />坑多?自然׃怕坑?..变成坑h...<br />武汉-Error<errorcpp@qq.com>  10:22:42<br />是滴Q,Q?br />深圳-雪锋(632006142)  10:22:43<br /><img src="file:///D:/QQ2010/Users/85126585/Image/7(MHYNP@7U%JY`Y}{5MES~K.gif" alt="" /><br />南昌-贝贝(1125591)  10:22:45<br /><img src="file:///C:/DOCUME~1/LIANGC~1.WUH/LOCALS~1/Temp/)QN1UH78VKP2T7)IA]ZM(FW.gif" sysface="97" alt="" /> </div><img src ="http://www.shnenglu.com/Error/aggbug/161481.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Error/" target="_blank">Enic</a> 2011-12-05 10:24 <a href="http://www.shnenglu.com/Error/articles/161481.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.businesscube.cn" target="_blank">պŷ޹ƷĻþþ</a>| <a href="http://www.yrwe981.cn" target="_blank">žžþȻ㽶ͼƬ</a>| <a href="http://www.yichengsh.com.cn" target="_blank">Ʒŷ޺ձþ</a>| <a href="http://www.sooppp.cn" target="_blank">þþþþྫƷֱ</a>| <a href="http://www.xggppz8.cn" target="_blank">þþþƷһ</a>| <a href="http://www.kong-ya-ji-wang.com.cn" target="_blank">һɫþ99һۺ</a>| <a href="http://www.hbjyhg.cn" target="_blank">þ99Ʒþþþþhb</a>| <a href="http://www.bagscheap.cn" target="_blank">Ʒ۲ӰԺþ</a>| <a href="http://www.68360.cn" target="_blank">þۺ㽶AV</a>| <a href="http://www.txhyhf.cn" target="_blank">þþþù</a>| <a href="http://www.lzcoxag.cn" target="_blank">þ99Ʒþ99ý</a>| <a href="http://www.zajiaosd.cn" target="_blank">ҹƷþ</a>| <a href="http://www.wsnb.com.cn" target="_blank">þ߿ۿƷ㽶</a>| <a href="http://www.csmfy.cn" target="_blank">ŷ˾þۺһ </a>| <a href="http://www.xiaoshuocn.cn" target="_blank">Ʒ˾þ˵Ӱ </a>| <a href="http://www.xyzl8.cn" target="_blank">þֻоƷƵ99</a>| <a href="http://www.zg-ly.cn" target="_blank">ҹѸþӰԺ</a>| <a href="http://www.vzaw.cn" target="_blank">һõþۺϺݺAV</a>| <a href="http://www.u4439.cn" target="_blank">99þۺϾƷվ</a>| <a href="http://www.hvnm.cn" target="_blank">þ˽˹ƷvA</a>| <a href="http://www.i0919.cn" target="_blank">þƵ</a>| <a href="http://www.wggls.cn" target="_blank">һƷþþ޹</a>| <a href="http://www.chiom.cn" target="_blank">ձŷþþþѲ</a>| <a href="http://www.jrtz112.cn" target="_blank">޹㽶ˬAVƬþ</a>| <a href="http://www.591happy.cn" target="_blank">þõӰһ</a>| <a href="http://www.jkzk.com.cn" target="_blank">þۺϾƷ</a>| <a href="http://www.3hiis.cn" target="_blank">þ޾Ʒa</a>| <a href="http://www.ykezn.cn" target="_blank">þþƷһպ</a>| <a href="http://www.530taiji.cn" target="_blank">ƷþòҰ</a>| <a href="http://www.enikl.cn" target="_blank">þþþһvr</a>| <a href="http://www.sjsgsl.net.cn" target="_blank">Ʒþþþþþapp </a>| <a href="http://www.9xz.com.cn" target="_blank">ŷ˼Ծþ</a>| <a href="http://www.591happy.cn" target="_blank">ձþþҹƷ</a>| <a href="http://www.z718.cn" target="_blank">aaþʦ2021Ʒ </a>| <a href="http://www.newlifefitness.cn" target="_blank">Ʒ99þþƷ</a>| <a href="http://www.gaohuirong.cn" target="_blank">ҹƷþ2021</a>| <a href="http://www.zmlxs.cn" target="_blank">þþþþþž99Ʒ</a>| <a href="http://www.f4home.cn" target="_blank">þþƷAVӰ</a>| <a href="http://www.globalimports.cn" target="_blank">޹ƷþSM</a>| <a href="http://www.fd-tex.cn" target="_blank">ɫav˾þô߽ӰԺ</a>| <a href="http://www.dbwlcom.cn" target="_blank">þSEƷһ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>