깊은 사과드립니다. 파일이 올바른 디렉토리에 복사되지 않아 읽을 수 없습니다. 결국이 확장은 모든 Windows 플랫폼에서 작동합니다. 이는 항상 적절한 오류 처리를 수행하라는 알림입니다.크롬 확장 프로그램에 FireBreath 플러그인이 있습니다 ... 오류 : NPObject에서 메서드 호출 중 오류가 발생했습니다.
직선 질문 :은 (.html 중에서 적절한의 .js을 필요로하고, .json은 명백하다) 나는 FireBreath이 .dll 파일을 생성 이상을 업로드해야합니까 Chrome 확장 내에서 FireBreath 플러그인을 검색 하시나요?
큰 그림 : FireBreath는 .DLL를 생성하고 난 크롬을 사용하여 업로드 크롬 확장 프로그램 폴더에이 .dll 파일을로드 퍼팅 생각 : // 확장/압축 해제가 충분하다. 즉, 추가 C++ 코드를 업로드 할 필요가 없다고 생각합니다. plugin.openUserIdFromFile()을 호출하면 오류가 발생합니다.
성공 : NPAPI FireBreath 플러그인을 사용하여 파일의 데스크톱 사용자 이름을 Chrome 확장 프로그램에로드했습니다. 그것은 플러그인이 개발 된 Windows 바탕 화면에서 작동합니다.
오류 :NPObject에서 메서드를 호출하는 중 오류가 발생했습니다. 모든 Windows 환경에서 오류가 수신되었습니다 (개발 환경 외부의 XP, 7 또는 8). 알려진
: 대화 상대 그것에 http://www.dependencywalker.com/ 소프트웨어를 실행하고 IEShims.dll 자신의 환경에서 누락 된 의존성 것을 발견했다,하지만 난 아무 소용 업로드 폴더에 포함되어 있습니다.
자바 스크립트를 크롬 확장 프로그램은 FireBreath 플러그인 DLL로 호출을 :
$(document).ready(function() {
setInterval(getAllChromeTabs, 10000);
var plugin = document.getElementById("pluginId");
while (user.length < 1) {
user = plugin.openUserIdFromFile();
}
console.log(user);
});
크롬 확장에서 호출 C++ FireBreath 플러그인 기능 :
std::string LabStatsPluginAPI::openUserIdFromFile()
{
std::string aTempFileName = "aTempFileName";
DWORD nBufferLength = MAX_PATH;
LPTSTR lpBuffer = (new TCHAR[nBufferLength]);
DWORD tempPath = GetTempPath(nBufferLength, lpBuffer);
char* localTempPathArray = new char[nBufferLength];
for (int i = 0; i < nBufferLength; i++) {
localTempPathArray[i] = (char)lpBuffer[i];
}
std::string localTempPath(localTempPathArray);
localTempPath = localTempPath + aTempFileName;
std::ifstream streamFromFile;
std::ifstream::pos_type fileSize;
streamFromFile.open(localTempPath, std::ios::in|std::ios::binary|std::ios::ate);
char* userNameString;
int userNamesize = streamFromFile.tellg();
streamFromFile.seekg(0, std::ios::beg);
userNameString = new char[userNamesize];
streamFromFile.read(userNameString, userNamesize);
delete[] lpBuffer;
delete[] localTempPathArray;
std::string userNameSafeString(userNameString);
delete[] userNameString;
return userNameSafeString;
}