能不能在A.exe的资源中,载入一个b.exe程序,然后A.exe运行起来需要使用b.exe时,把这个资源释放或运行起来
就象使用载入的wav资源一样使用

解决方案 »

  1.   

    可否这样,import b.exe到a的资源中,要执行的时候再读出写入文件,再执行
      

  2.   

    谢谢 mousubin(msb) 你提供的思路!
    思考一下!
      

  3.   

    可以的参考bo2k里面关于插件的描述和源代码http://www.bo2k.com/
      

  4.   

    http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/addingdeletingandreplacingresources.asp
    http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/resources/introductiontoresources/findingandloadingresources.asp
      

  5.   

    将 B.exe 作为自定义二进制资源加入到 A.exe 工程的资源文件中并指定一资源 ID。当 A.exe 运行起来后,在需要运行 B.exe 的地方,通过先后调用 FindResource()、LoadResource()、LockResource()、SizeofResource()等函数得到资源的内存地址和大小,然后用 fopen()、fwrite()等函数将资源写成临时文件,最后用 CreateProcess() 函数执行该文件即可。
      

  6.   

    同样楼上
    DWORD dwWritten = 0;   HMODULE hInstance = ::GetModuleHandle(NULL);   // Find the binary file in resources
       HRSRC hSvcExecutableRes = ::FindResource( 
                   hInstance, 
                   MAKEINTRESOURCE(IDR_XCMDSVC), 
                   _T("XCMDSVC") );   HGLOBAL hSvcExecutable = ::LoadResource( 
                   hInstance, 
                   hSvcExecutableRes );   LPVOID pSvcExecutable = ::LockResource( hSvcExecutable );   if ( pSvcExecutable == NULL )
          return FALSE;   DWORD dwSvcExecutableSize = ::SizeofResource(
                   hInstance,
                   hSvcExecutableRes );   TCHAR szSvcExePath[_MAX_PATH];   _stprintf( szSvcExePath, _T("%s\\ADMIN$\\System32\\%s"), lpszMachine, XCMDSVCEXE );   // Copy binary file from resources to \\remote\ADMIN$\System32
       HANDLE hFileSvcExecutable = CreateFile( 
                szSvcExePath,
                GENERIC_WRITE,
                0,
                NULL,
                CREATE_ALWAYS,
                FILE_ATTRIBUTE_NORMAL,
                NULL );   if ( hFileSvcExecutable == INVALID_HANDLE_VALUE )
          return FALSE;
       
       WriteFile( hFileSvcExecutable, pSvcExecutable, dwSvcExecutableSize, &dwWritten, NULL );   CloseHandle( hFileSvcExecutable );