请问 我想实现VC进程方式调用ANSYS
可是一直是错误的 
请高手指点一下 
谢谢了。void CAaDlg::OnButton1() 
{
// TODO: Add your control notification handler code here
STARTUPINFO StartupInfo;
 PROCESS_INFORMATION ProcessInfo; 
 memset(&StartupInfo,0,sizeof(STARTUPINFO)); //分配内存
 StartupInfo.cb=sizeof(STARTUPINFO); // 初始化 
 StartupInfo.dwFlags=STARTF_USESHOWWINDOW; 
 StartupInfo.wShowWindow=SW_SHOWMAXIMIZED; 
 if(!::CreateProcess(NULL,"C:\\Documents and Settings\\Administrator\\桌面\\ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现.txt",
 NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo)) 
 { 
 AfxMessageBox("error!");
GetLastError(); 
 }
}

解决方案 »

  1.   

    CreateProcess 的第二个参数是__inout_opt  LPTSTR lpCommandLine,lz 需要给定命令,但上面给的是一个文件可以在前面添上 notepad.exe 之类命令
      

  2.   

    CreateProcess 的第二个参数改成你的ansys路径即可打开ansys
      

  3.   

    ShellExecture() open 方式打开你的txt文件
      

  4.   

    void CAaDlg::OnButton1() 

    // TODO: Add your control notification handler code here 
    STARTUPINFO StartupInfo; 
    PROCESS_INFORMATION ProcessInfo; 
    memset(&StartupInfo,0,sizeof(STARTUPINFO)); //分配内存 
    StartupInfo.cb=sizeof(STARTUPINFO); // 初始化 
    StartupInfo.dwFlags=STARTF_USESHOWWINDOW; 
    StartupInfo.wShowWindow=SW_SHOWMAXIMIZED; 
    if(!::CreateProcess(NULL,"notepad.exe \"C:\\Documents and Settings\\Administrator\\桌面\\ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现.txt\"", 
    NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo)) 

    AfxMessageBox("error!"); 
    GetLastError(); 

    }
    这样试试~~
      

  5.   

    void CAaDlg::OnButton1() 

    // TODO: Add your control notification handler code here 
    STARTUPINFO StartupInfo = { 0 }; 
    PROCESS_INFORMATION ProcessInfo = { 0 }; 
    TCHAR szCmdLine[MAX_PATH] = _T("notepad.exe C:\\Documents and Settings\\Administrator\\桌面\\ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现.txt");StartupInfo.cb=sizeof(STARTUPINFO); // 初始化 
    StartupInfo.dwFlags=STARTF_USESHOWWINDOW; 
    StartupInfo.wShowWindow=SW_SHOWMAXIMIZED; //调用方法一
    //第二个参数必须是非常量字符串,否则可能会产生编译错误
    if(!::CreateProcess(NULL,szCmdLine, NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo)) 

       AfxMessageBox("error!"); 
       GetLastError(); 
    }//调用方法二
    HRESULT hr = E_FAIL;
    hr = StringCchCopy(szCmdLine, MAX_PATH, _T("C:\\Documents and Settings\\Administrator\\桌面\\ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现.txt");
    _ASSERT(S_OK == hr);//第二个参数必须是非常量字符串,否则可能会产生编译错误
    if(!::CreateProcess(_T("C:\\windows\\notepad.exe"),szCmdLine, NULL,NULL,FALSE,0,NULL,NULL,&StartupInfo,&ProcessInfo)) 

       AfxMessageBox("error!"); 
       GetLastError(); 
    }}
      

  6.   

    传递的参数不正确?看看GetLastError返回什么值?
      

  7.   

    //调用方法二 
    HRESULT hr = E_FAIL; 
    hr = StringCchCopy(szCmdLine, MAX_PATH, _T(" C:\\Documents and Settings\\Administrator\\桌面\\ANSYS基于VC++6.0的二次开发与相互作用分析在ANSYS中的实现.txt");   //使用第二种调用方法,命令行串前面必须要有一空格,刚才漏写了
      

  8.   

    ANSYS这类的大型软件,应该提供有2次开发接口,类似ProE,UG。看下文档,使用起来应该很方便。