현재 COM 개체와 상호 작용하는 프로젝트에서 작업하고 있습니다. 필자는 다음 코드를 호출한다.사용자 권한 및 COM 개체
CoInitialize(NULL); //Initialize COM system
HRESULT hr = spSSCProt.CreateInstance(("SSCProt.SSCprotector"));
이것은 필자에게 필요한 객체를 가져다 준다. 이것이 실패하면 COM 서버에 regsvr32
을 사용하여 등록 된 COM 개체가 없기 때문일 수 있습니다. 모두 괜찮습니다. 다음 코드를 처리 할 수 있습니다.
/if its not, lets try to register it ourselves...create the command
CHAR cmdBuf[BUFSIZE];
GetCurrentDirectory(BUFSIZE,cmdBuf);
string cmd("regsvr32 -s \"");
cmd += cmdBuf;
cmd += "\\stixDlls\\SSCProt.dll\"";
//attempt to register it
system(cmd.c_str());
사용자가 관리자가 아닌 경우 문제가 발생합니다. 그들은 COM 서버를 등록하는 코드 섹션을 실행할 수 없습니다. 대부분의 사용자는 관리자가 아닐 것입니다.
관리자가 아닌 경우 com 서버를 등록 할 수있는 방법에 대한 아이디어.
감사