请问从资源中启动EXE的方法,以前的做法没有安全性

请教从资源中启动EXE的方法,以前的做法没有安全性.
我现在写的软件里有个证书生成器,这个文件是做为主程序的资源被加载在程序里的.当需要调用时自动把这个生成器写到某个目录下,然后运行.   但现在出于安全角度考虑,不允许这个生成器文件写到本地磁盘.   请教各位如何实现.

下面是老的做法
        CString   strFile;
        strFile   =   _T( "C:\\Certificate.exe ");
       
        HINSTANCE   HInstance   =   AfxGetInstanceHandle();
        HRSRC           hResInfo;
        HGLOBAL       hRes;
       
        //寻找资源名
        hResInfo   =   FindResource(HInstance,(LPCSTR)(IDR_EXE_SERVER), "EXE ");
        hRes           =   LoadResource(HInstance,hResInfo   );                                         //   Load   it
        DWORD   dFileLength   =   SizeofResource(   HInstance,   hResInfo   );                 //计算EXE文件大小
       
        CFile   file;  
        if(file.Open(   strFile,   CFile::modeCreate   |   CFile::modeWrite,   NULL))
        {
                file.WriteHuge((LPSTR)hRes,dFileLength);                                         //写入临时文件
                file.Close();
               
                if(IsFileExist(strFile))
                {
                        //   启动程序
                        ShellExecute(NULL, "open ",strFile,NULL,   NULL,   SW_HIDE);
                }
        }        

        FreeResource(hRes);


------解决方案--------------------
You can load a DLL from memory, but you need to adjsut base memory addresses by yourself
http://msdn.microsoft.com/msdnmag/issues/02/02/PE/PE.asp
http://msdn.microsoft.com/msdnmag/issues/02/03/PE2/PE2.asp
Another method is to create a RAM disk.
------解决方案--------------------
mark.
------解决方案--------------------
启动程序 需要exe文件, RAM disk可能比较复杂
建议还是把证书生成器的代码加到 当前工程