阅读:1230回复:2
急问:d12源码求教!
在d12test源代码中定义:
UINT InterruptIn(void * pParam) 调用该函数: CWinThread * wt = AfxBeginThread( InterruptIn, // thread function &m_InterruptIn); // argument to thread function 请问定义中的pparam是怎么来的?调用的时候没有注明实参呀?从程序中看出pparam可以传递进来很多必须的信息。如果我想把一个文件作为pParam的指向地址,应该怎样调用这个函数? 是 CWinThread * wt = AfxBeginThread( InterruptIn(filename), &m_InterruptIn); 这样调用么???? 谢谢指教!! |
|
沙发#
发布于:2004-12-15 09:11
在d12test源代码中定义: AfxBeginThread有两种不同定义,具体定义如下: CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); CWinThread* AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL ); 你可以使用第一种定义,然后在第2个参数增加你需要传递的信息 比如: CWinThread * wt = AfxBeginThread( InterruptIn, filename); 这样在InterruptIn中的哪个参数变指向filename了 |
|
|
板凳#
发布于:2004-12-15 10:01
调用的全文是:
CThreadParam m_InterruptIn; m_InterruptIn.testDlg = this; m_InterruptIn.uiLength = 16; strcpy(m_InterruptIn.pipe_name, (LPCSTR)"PIPE00"); strcpy(m_InterruptIn.driver_name, (LPCSTR)"D12TEST-0"); m_InterruptIn.bInThread=true; m_InterruptIn.threadFile1=NULL; m_InterruptIn.threadFile2=NULL; CWinThread * wt = AfxBeginThread( InterruptIn, // thread function &m_InterruptIn); // argument to thread function m_InterruptIn.hThread = wt; 如果在调用时把第二个参数换成filename,是不是该在定义时定义CThreadParam * filename,后面的所有m_InterruptIn全部换成*filename呢?但是文件名是不是应该是char *类型呢?这个怎么转换呢? |
|