⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc-ansys.cpp

📁 通过VC调用Ansys进行计算。可实现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 + -