2013-03-12 34 views
1

我編寫了一個代碼,可以生成翼型形狀並使用外部程序評估它們作爲評估工具。我也做了一個批處理文件,它啓動這個程序執行翼型形狀評估所需的一些批處理命令,然後關閉程序.... !!如何從Visual Studio 2010調用批處理文件

我在每個循環中做了幾次評估。我的問題是,我找不到通過我的代碼運行批處理文件的方法。我使用了下面顯示的兩種方式,但他們都沒有在Visual Studio 2010中工作。我使用C語言編寫代碼,並且收到C:/Users/Angelos/Documents/CExperiments/BSplines/run.bat不是內部消息的消息命令等......!

你能檢查一下,告訴我我做錯了什麼?

謝謝

void XfoilCall() 
{ 
SHELLEXECUTEINFO ShExecInfo = {0}; 
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); 
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS; 
ShExecInfo.hwnd = NULL; 
ShExecInfo.lpVerb = NULL; 
ShExecInfo.lpFile = ("C:/Users/Angelos/Documents/CExperiments/BSplines/run.bat"); 
ShExecInfo.lpParameters = (""); 
ShExecInfo.lpDirectory = NULL; 
ShExecInfo.nShow = SW_SHOW; 
ShExecInfo.hInstApp = NULL; 
ShellExecuteEx(&ShExecInfo); 
WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 


void XfoilCall() 
{ 
system("C:/Users/Angelos/Documents/CExperiments/BSplines/run.bat"); 
} 

回答

2

相反試試這個:

system("cmd C:/Users/Angelos/Documents/CExperiments/BSplines/run.bat"); 
2

你的斜槓是在錯誤的方向(他們應該是反斜槓),並需要進行轉義。您還需要啓動命令解釋器(cmd.exe)來處理批處理腳本。

ShExecInfo.lpFile = ("cmd.exe /c C:\\Users\\Angelos\\Documents\\CExperiments\\BSplines\\run.bat"); 
相關問題