您好!這是我的代碼,C語言的,運行到點擊“開始登陸”時,就彈出“內存不能為read”,我不知道不是代碼的問題,或者是缺少dll文件?幫我看看,一點小分,不成敬意……:#include "stdafx.h"#include <windows.h>int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){// TODO: Place code here.int ret=MessageBox(NULL,TEXT("你好!我是丁丁,想聊天嗎?"),TEXT("問好"),MB_YESNO|MB_ICONQUESTION);if(IDYES==ret){int ret1=MessageBox(NULL,TEXT("好,要現在登錄QQ嗎"),TEXT("詢問"),MB_YESNO|MB_ICONQUESTION);if(IDYES==ret1){int ret2=MessageBox(NULL,TEXT("開始登陸……"),TEXT("稍等"),MB_OK);if(IDOK==ret2){CreateProcessA(NULL,"D:\\QQ\\Bin\\QQ.exe", NULL, NULL,NULL, NULL, NULL,NULL, NULL,NULL);}}}return 0;}
1 回答

陪伴而非守候
TA貢獻1757條經驗 獲得超8個贊
對于CreateProcess函數的后兩個參數你不能簡單的定義為NULL,你可以參看MSDN對這個函數的說明,倒數第二個參數必須要有你提供。它是一個STARTUPINFO結構體的指針,這個結構體對象一定要有你自己提供
最后一個參數你也必須自己提供,它是一個PROCESS_INFORMATION類型的指針
也就是:
STARTUPINFO st;
PROCESS_INFORMATION pi:
eroMemory(&si,sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi,sizeof(pi));
然后調用函數CreateProcess("D:\\QQ\\Bin\\QQ.exe", NULL, NULL,NULL, NULL, NULL,NULL, NULL,&si,&pi);
或者CreateProcess(NULL,"D:\\QQ\\Bin\\QQ.exe", NULL, NULL,NULL, NULL, NULL,NULL, &si,&pi)
這樣就可以了。
這樣雖然可以正常的運行,但是最好的習慣是打開一個進程之后,我們要將該程序與進程斷開連系,調用CloseHandle函數實現。
添加回答
舉報
0/150
提交
取消