2012-06-21 64 views
0

我想使用createprocess()函數將C++鏈接到GAMS軟件。我使用這個代碼,但它只是打開GAMS軟件。我希望該程序在打開GAMS軟件後自動運行file.gms:將C++鏈接到gams軟件

STARTUPINFO si;  
PROCESS_INFORMATION pi; 
ZeroMemory(&si, sizeof(si)); 
si.cb = sizeof(si); 
ZeroMemory(&pi, sizeof(pi)); 
if(CreateProcessW(L"C:\\PROGRA~1\\gams23.3\\gamside.exe",NULL,NULL,NULL,false,0,NULL,NULL,&si,&pi)) 
{  
    WaitForSingleObject(pi.hProcess, 10000); 
      CloseHandle(pi.hProcess); 
      CloseHandle(pi.hThread); 
} 

請幫助我。非常感謝。

回答

1

您應該使用要查看gamside.exe的命令行填寫第二個參數(LPTSTR lpCommandLine)(例如,將您的文件作爲第一個參數傳遞)。你需要指定的內容取決於gamside程序的規格(這是WETF)。

順便說一句:在你的問題標題中使用術語「鏈接」對於這個主題有點誤導,因爲在C++環境中的'鏈接'通常意味着將庫鏈接到你的可執行文件,而不是從它調用另一個可執行文件。

+0

你介意在這個問題上添加一個gams標籤,也是http://stackoverflow.com/q/22666921/1470262? –

+0

@ElaineHale目前沒有[tag:gams]標籤(我不想創建一個新標籤)。我會將您提供的鏈接標記爲可能重複的問題。 –

+0

爲什麼你不想爲gams創建一個新標籤?這似乎是合適的,因爲已經有一個擴展版本,至少有5-10個可以使用它的現有問題,並且可能增加它會使gams程序員更容易地給予和獲得關於StackOverflow的幫助。 –