📄 vc-ansys.cpp
字号:
#include "stdio.h"
#include "process.h"
#include "string.h"
#include "stdafx.h"
class CZTDlg
{
public:
PROCESS_INFORMATION pi;//记录进程初始状态
DWORD dwExitCode; //退出代码
CString m_strInputFile; //命令流输入文件名
CString m_strOutFile; //结果输出文件名
void OnOK();
void TerminateAnsys();
};
//之后是调用和终止ANSYS的代码:
void CZTDlg::OnOK()
{
// TODO: Add extra validation here
// CDialog::OnOK();
m_strInputFile="F:\\Fluent-VC-ANSYS\\ANSYS-VC\\dd.txt";
m_strOutFile="F:\\Fluent-VC-ANSYS\\ANSYS-VC\\dd.out";
//存储ANSYS路径的变量
CString sCommandLine;
char cCommandLine[MAX_PATH];
STARTUPINFO si={sizeof(si)}; //初始化变量si 设置变量si的字节大小
si.dwFlags=STARTF_USESHOWWINDOW; //设置ANSYS批处理程序以窗口方式运行
si.wShowWindow=SW_SHOWMAXIMIZED; //设置ANSYS批处理程序以最大化方式运行
//获得ANSYS的路径及批处理时所带的参数
sCommandLine="F:\\Fluent-VC-ANSYS\\ansys80.exe -i "+m_strInputFile+" -o "+m_strOutFile;
::strcpy(cCommandLine, sCommandLine);
//创建"ANSYS"子进程
BOOL ret = CreateProcess(NULL, cCommandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
if (ret)
{
//释放程序控制权
return;
}
else //创建子进程出错
{
AfxMessageBox( "CreateProcess错误:"+GetLastError() );
return;
}
}
void CZTDlg::TerminateAnsys() //程序进程终止
{
//获取子进程的退出码
if(GetExitCodeProcess(pi.hProcess,&dwExitCode))
{
//如果子进程还未结束,避免无限循环
if (dwExitCode==STILL_ACTIVE)
{
//终结该进程
if (TerminateProcess(pi.hProcess,dwExitCode)) // 关闭子进程句柄
CloseHandle(pi.hProcess);
}
}
}
void main()
{
CZTDlg s;
s.OnOK();
s.TerminateAnsys();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -