要在vc/mfc里怎样创建一个任务(CreatTask) rt创建一个任务(task)这个函数,需要在lib文件中调用的。要怎样写呢?本人在网上没有找到,可能关键字不对。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用了STARTUPINFO startInfo; PROCESS_INFORMATION pi ; ZeroMemory( &startInfo, sizeof(startInfo) ); startInfo.cb = sizeof(startInfo); ZeroMemory( &pi, sizeof(pi) ); if( !CreateProcess( (LPWSTR)"D:\proc123.exe", // No module name (use command line). (LPWSTR)"", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &startInfo, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) { AfxMessageBox( _T("CreateProcess failed." ),0,0 ); return false; } return true;这是一个CreateProcess的通用的代码,在vc/mfc中调用,可总是走到"CreateProcess failed."这里面, 有2个问题:(1)STARTUPINFO startInfo; 声明这个结构体的时候,里面的LPWSTR类型的自动总显示<错误的指针>;(2)CreateProcess()第一个参数是一个带有路径exe文件,这个exe指的什么?我在vc/mfc中加入的CreateProcess,那么我就是要将这个项目的exe加在这里吗? 前两个参数使用这种类型:LPCTSTRLPTSTR路径"D:\\proc123.exe“ 不好意思,我不是要参数的类型,而是具体应该写什么。CreateProcess()第一个参数是一个带有路径exe文件,这个exe指的什么?我在vc/mfc中加入的CreateProcess,那么我就是要将这个项目的exe加在这里吗?另外,STARTUPINFO startInfo; 声明这个结构体的时候,里面的LPWSTR类型的自动总显示 <错误的指针>; 好像是因为这个所以我在创建task的时候总是不能创建成功。要怎样修改呢??? 就是你要启动的进程的PE文件,进程就是PE文件的一次执行 你是说exe文件是指我要启动的进程的PE文件??但是我所要启动的,只是一段封装在lib文件的程序呀?bool CreatTask(TaskEntry usractTask){//这里是上面的那段程序}usractTask这个参数是lib文件中定义的一个task函数;就是那种usractTaskstatic void usractTask(void){……while(1){……}……}就是这种。 线程开了,但是不能调用我想调用的那个函数呀?CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)usractTask, (LPVOID)1, 0, NULL);需要调用usractTask这个函数,这个函数是在lib文件中的;static void usractTask(void){……while(1){……}……}c++里好像没有直接task_create的那种库函数? 你的意思是直接调用静态连接库Lib里面的一个函数? LZ 是从嵌入式 转型MFC的? 现在用 CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)usractTask, (LPVOID)1, 0, NULL);貌似是可以这样写。但是总是出现计算机死机的情况,具体是当我执行CreateThread的时候,计算机会死好一会。而且之后每动一下(即使ALT+Tab)也会死,算是不能正常执行程序了。不知道怎么回事。 如下问题如何解决,请高手指教 有个问题请教下:程序这里需要开线程吗? 又是关于图像剪切的问题,求源代码 Application Hang 挂起应用程序,什么原因引起的? 这个为啥速度那么慢 向一棵树发一个点击消息 如何在CHtmlView中使用DHtml event map? Visual c++ 6的安装问题 请问哪里有用visual c++写的文本编辑器的源代码下载? VC编译提示对话框资源ID没有定义,怎么解决? CRecordset的问题 为什么求个简单的实例就这么难呢?
STARTUPINFO startInfo;
PROCESS_INFORMATION pi ; ZeroMemory( &startInfo, sizeof(startInfo) );
startInfo.cb = sizeof(startInfo); ZeroMemory( &pi, sizeof(pi) );
if( !CreateProcess( (LPWSTR)"D:\proc123.exe", // No module name (use command line).
(LPWSTR)"", // Command line.
NULL, // Process handle not inheritable.
NULL, // Thread handle not inheritable.
FALSE, // Set handle inheritance to FALSE.
0, // No creation flags.
NULL, // Use parent's environment block.
NULL, // Use parent's starting directory.
&startInfo, // Pointer to STARTUPINFO structure.
&pi ) // Pointer to PROCESS_INFORMATION structure.
)
{
AfxMessageBox( _T("CreateProcess failed." ),0,0 );
return false; }
return true;
这是一个CreateProcess的通用的代码,在vc/mfc中调用,可总是走到"CreateProcess failed."这里面,
有2个问题:
(1)STARTUPINFO startInfo; 声明这个结构体的时候,里面的LPWSTR类型的自动总显示<错误的指针>;
(2)CreateProcess()第一个参数是一个带有路径exe文件,这个exe指的什么?我在vc/mfc中加入的CreateProcess,那么我就是要将这个项目的exe加在这里吗?
LPCTSTR
LPTSTR
路径"D:\\proc123.exe“
另外,STARTUPINFO startInfo; 声明这个结构体的时候,里面的LPWSTR类型的自动总显示 <错误的指针>; 好像是因为这个所以我在创建task的时候总是不能创建成功。要怎样修改呢???
bool CreatTask(TaskEntry usractTask)
{
//这里是上面的那段程序
}
usractTask这个参数是lib文件中定义的一个task函数;
就是那种usractTask
static void usractTask(void)
{
……
while(1)
{
……
}
……
}就是这种。
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)usractTask, (LPVOID)1, 0, NULL);需要调用usractTask这个函数,这个函数是在lib文件中的;
static void usractTask(void)
{
……
while(1)
{
……
}
……
}c++里好像没有直接task_create的那种库函数?
但是总是出现计算机死机的情况,具体是当我执行CreateThread的时候,计算机会死好一会。
而且之后每动一下(即使ALT+Tab)也会死,算是不能正常执行程序了。
不知道怎么回事。