被人嘲笑,随便说说

原创 2005年05月16日 00:16:00
在编程的这条路上不时地产生迷茫,到底这条路走下去该去哪呀,这几天有空研究了一下C++的thunk机制,却被同时嘲笑浪费时间,郁闷。
下面是在下这几天自己写的非常简单的线程类,希望大家批评指教,如果真没用,那我就去学别的了
/*********************************/
/*** file:CThread.h ***/
/*********************************/
#include

#pragma pack(push, 1)
struct StdThunkContext
{
BYTE m_mov; // mov eax, %pThis
DWORD m_this; //
DWORD m_xchg_push; // xchg eax, [esp] : push eax
BYTE m_jmp; // jmp func
DWORD m_relproc; // relative jmp
};
#pragma pack(pop)

template
class CStdThunk
{
public:
struct StdThunkContext thunk;
typedef void (__stdcall T::*pTgFunc)();
public: void InitThunk(pTgFunc method, const T* pThis)
{
union { DWORD func; pTgFunc method; } addr;
addr.method = method;
thunk.m_mov = 0xB8;
thunk.m_this = (DWORD)pThis;
thunk.m_xchg_push = 0x50240487;
thunk.m_jmp = 0xE9;
thunk.m_relproc = addr.func - (DWORD)(&thunk + 1);

FlushInstructionCache(GetCurrentProcess(), &thunk, sizeof(thunk));
}
};

class CThread
{
HANDLE hThread;
DWORD ThreadID;
DWORD __stdcall _ThreadFun(LPVOID);
CStdThunk ThreadFun;

public:
CThread(LPVOID);
~CThread();
};

CThread::CThread(LPVOID lpParam)
{
hThread = NULL;
ThreadID = 0; ThreadFun.InitThunk((CStdThunk::pTgFunc)(&(CThread::_ThreadFun)),this);
hThread = CreateThread(NULL,
0,
(LPTHREAD_START_ROUTINE)&(ThreadFun.thunk),
(LPVOID)lpParam,
0, &ThreadID);
if(hThread == NULL)
{
//-----------异常处理----------//
}
}
CThread::~CThread()
{

}

DWORD __stdcall CThread::_ThreadFun(LPVOID lpParam)
{
//-------在此添加线程主体过程-------//
return 0;
}

随便说说removeFromSuperview方法

本文作者: 伯乐在线 - 刘小壮 。未经作者许可,禁止转载! 欢迎加入伯乐在线 专栏作者。 该文章属于原创,转载请注明: http://www.jianshu.com/p/b817c94cac0b...

随便说说,关于电吉他这个爱好

前言:随便说说,关于电吉他这个爱好,阶段总结。 仅供参考,由此带来的一切后果你自己负责,嘿嘿,附带福利,██████ 刮开有奖。 好吧,希望对初学者在设备的理解和选择上能有一些帮助。 起因:最近...
  • oshj
  • oshj
  • 2014年04月29日 15:52
  • 4051

Struts2标签随便说说

一、Struts2可以将所有标签分成3类: UI标签:主要用于生成HTML元素的标签。 非UI标签:主要用于数据库访问,逻辑控制等标签。 Ajax标签:用于Ajax支持的标签。 对于UI标签,...

随便说说

我每天仍然能看到夕阳下的美景,只不过这美景中再也没有那衣袂飘飘的倩影。时光流逝,美,却总是多少让我有点怅然忧伤。 无需如此,无需如此,只要还活着,这就是一种神奇的力量。 无论光明与黑暗, 我只要...

随便说说字符集和编码

随便说说字符集和编码 快下班时,爱问问题的小朋友Nico又问了一个问题: "sqlserver里面有char和nchar,那个n据说是指unicode的数据,这个是什么意思。" 并不是所有简单的问题都...

第一篇,就随便说说。

距离大二也只有短短两个多月了,上学期其实

先从简单的说起,随便说说...

先来说说我为啥想去华为吧……1.钱多。这一点足够打动我啦,没钱可 难受了。尤其是以后出社会了,没钱太苦了,啥都不是。2.华为的管理。前一阵我去听了华为在我们学校(哈工大)的宣讲会,刚好有幸拜读过杰克...

自己对ajax的第一次上手被人说菜死还真是菜

今天算第一次上手ajax,为了再当前页面验证用户名和

开发网络爬虫应该选择Nutch、Crawler4j、WebMagic、scrapy、WebCollector还是其他的?这里按照我的经验随便扯淡一下:上面说的爬虫,基本可以分3类

1.分布式爬虫:Nutch 2.JAVA单机爬虫:Crawler4j、WebMagic、WebCollector 3. 非JAVA单机爬虫:scrapy 第一...
  • D_J_W
  • D_J_W
  • 2016年05月31日 09:50
  • 4683

手机也能连VPN,再来个远程控制PC这种事你以为我会随便说么!

转自:http://www.cnblogs.com/maoniu602/archive/2013/06/02/3114500.html 记得是前几周无意中看到说,在解决一次突发故障时,某公司...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:被人嘲笑,随便说说
举报原因:
原因补充:

(最多只允许输入30个字)