呼叫外部程式問題 |
答題得分者是:taishyang
|
阿鬼就是我
一般會員 ![]() ![]() 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
各位前輩,您好
我想要呼叫外部程式,寫在按鈕物件下 參數寫法就像: void __fastcall TForm1::Button1Click(TObject *Sender) { cmd = "c:\\windows\\AnisoDiff.exe c:\\windows\\House512.bmp c:\\windows\\House512.bmp 5 100 0.25 1"; } [C Error] Unit1.cpp(54): E2451 Undefined symbol 'cmd' [ C 錯誤] Unit1.cpp(54): E2451 未定義的符號' cmd ' 我看的書C builder6 有介紹 WinExec("....." , NULL) 的方式,不過還是搞不懂該怎麼借鑑 問題 , cmd 該怎麼定義呢?應該在哪裡定義? 謝謝
------
嫩的我,需要多多曬太陽 |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
1.cmd的資料型態是什麼?
2.請先搜尋舊文章 ===================引 用 阿鬼就是我 文 章=================== 各位前輩,您好 我想要呼叫外部程式,寫在按鈕物件下 參數寫法就像: void __fastcall TForm1::Button1Click(TObject *Sender) { cmd = "c:\\windows\\AnisoDiff.exe c:\\windows\\House512.bmp c:\\windows\\House512.bmp 5 100 0.25 1"; } [C Error] Unit1.cpp(54): E2451 Undefined symbol 'cmd' [ C 錯誤] Unit1.cpp(54): E2451 未定義的符號' cmd ' 我看的書C builder6 有介紹 WinExec("....." , NULL) 的方式,不過還是搞不懂該怎麼借鑑 問題 , cmd 該怎麼定義呢?應該在哪裡定義? 謝謝 |
阿鬼就是我
一般會員 ![]() ![]() 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
感謝副站長 給提示,
我應該怎麼收尋,我需要的資料 ===================引 用 taishyang 文 章=================== 1.cmd的資料型態是什麼? 2.請先搜尋舊文章 ===================引 用 阿鬼就是我 文 章=================== 各位前輩,您好 我想要呼叫外部程式,寫在按鈕物件下 參數寫法就像: void __fastcall TForm1::Button1Click(TObject *Sender) { cmd = "c:\\windows\\AnisoDiff.exe c:\\windows\\House512.bmp c:\\windows\\House512.bmp 5 100 0.25 1"; } [C Error] Unit1.cpp(54): E2451 Undefined symbol 'cmd' [ C 錯誤] Unit1.cpp(54): E2451 未定義的符號' cmd ' 我看的書C builder6 有介紹 WinExec("....." , NULL) 的方式,不過還是搞不懂該怎麼借鑑 問題 , cmd 該怎麼定義呢?應該在哪裡定義? 謝謝
------
嫩的我,需要多多曬太陽
編輯記錄
阿鬼就是我 重新編輯於 2008-02-18 20:40:13, 註解 無‧
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
阿鬼就是我
一般會員 ![]() ![]() 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
您好,
用按鈕呼叫外部程式AnisoDiff.exe , 有一各地方一直試不出來。 #include #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- void TForm1::RunExtCmd(AnsiString cmd) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if( !CreateProcess( NULL, // No module name (use command line). cmd.c_str(), // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. DETACHED_PROCESS, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) { //ErrorExit( "CreateProcess failed." ); } // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString cmd = new AnsiString("c:\\WINDOWS\\AnisoDiff.exe c:\\WINDOWS\\House512.bmp c:\\windows\\House512.bmp 5 100 0.25 1"); RunExtCmd (cmd); //這一段的問題 [C Error] Unit1.cpp(54): E2034 Cannot convert 'AnsiString *' to 'AnsiString' //改成這樣 AnsiString cmd = new AnsiString("c:\\WINDOWS\\AnisoDiff.exe" , "c:\\WINDOWS\\House512.bmp" , "c:\\windows\\House512.bmp" , 5 100 0.25 1); RunExtCmd (cmd); //j問題更多[ //C Error] Unit1.cpp(55): E2293 ) expected //[C Error] Unit1.cpp(55): E2285 Could not find a match for 'AnsiString::AnsiString(char *,char *,char *,int)' //[C Error] Unit1.cpp(55): E2034 Cannot convert 'AnsiString *' to 'AnsiString' //錯在AnsiString cmd = new AnsiString 吧,不過卻不知道該怎麼下手 } //---------------------------------------------------------------------------
------
嫩的我,需要多多曬太陽 |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
阿鬼就是我
一般會員 ![]() ![]() 發表:4 回覆:7 積分:2 註冊:2008-02-16 發送簡訊給我 |
taishyang 您好 ,
我想表達的是 AnsiString cmd 可以等於 new AnsiString 不過這樣好像沒有辦法呼叫出執行檔。 後面在 RunExtCmd (cmd); 我把它改成這樣,可以執行,按button會有訊息通知缺少libmmfile.dll 這個是我缺檔案嗎? AnsiString cmd = ("c:\\WINDOWS\\AnisoDiff.exe c:\\WINDOWS\\House512.bmp c:\\windows\\House512.bmp 5 100 0.25 1"); RunExtCmd (cmd); 重新將AnisoDiff.exe下載就沒問題了。感謝讓我發問,雖然執行上還是有問題 =====引 用 taishyang 文 章=================== 你知不知道你寫的程式碼的意思(我指的是錯誤的那一段)?
------
嫩的我,需要多多曬太陽 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |