네이티브 호스트 메시징과 함께 Chrome 확장 기능을 연구 중입니다. 호스트 응용 프로그램에서 메시지 텍스트를 사용할 수 없습니다. 연장에 응답을 얻기 위해 연결을 설정하는 것부터 잘 작동하는 모든 것. 간단한 텍스트 데이터 유형 (문자열/char)에서 추가 사용/실행을 위해 응용 프로그램에서 메시지 텍스트를 사용해야합니다. 메시지가 UTF8로 인코딩 된 형식으로되어 있습니다. 디코딩을 시도했지만 여전히 문제가 발생했습니다. 어느 누구도 나를 도와 줄 수 있습니까?네이티브 응용 프로그램에서 네이티브 호스트 메시지를 사용하는 방법 Chrome 네이티브 메시징 확장의 경우
메시지 디코딩 확장 프로그램 콘솔 오류 : "네이티브 메시징 호스트와 통신 할 때 오류가 발생했습니다." "cout"다음에 해당 메시지 텍스트를 사용하면 같은 오류가 발생합니다 "네이티브 메시징 호스트와 통신 할 때 오류가 발생했습니다". 직접 보내고받는 메시지가 나를 위해 잘 작동합니다. 잘못
std::string mycode(std::string data){
data= data+"abc"; //changing text to any thing.
cout<< data;
anotherFunction(data);//killing processes using string data
}
int main(int argc, char* argv[])
{
std::cout.setf(std::ios_base::unitbuf);
while (true)
{
unsigned int ch, inMsgLen = 0, outMsgLen = 0;
std::string input = "", response = "";
std::cin.read((char*)&inMsgLen, 4);
if (inMsgLen == 0)
{
break;
}
else
{
for (int i=0; i < inMsgLen; i++)
{
ch = getchar();
input += ch;
}
}
response.append("{\"echo\":").append(input).append("}");
outMsgLen = response.length();
std::cout.write((char*)&outMsgLen, 4);
std::cout << response;
cout<< input;
//using "input" variable for further user
mycode(input);
}
return 0;
}
메시지가 UTF8 인 것은 무엇을 의미합니까? 네이티브 메시징 호스트에 전달 된 메시지는 바이너리 모드이므로 stdin을 바이너리로 설정하고 처음 4 바이트를 읽은 다음 메시지의 크기를 확인한 다음 메시지를 읽어야합니다. –
나는 메시지의 크기를 알기 위해 처음 4 바이트를 읽은 다음 똑같은 일을하고있다. 그러나 추가 사용을 위해 메시지 텍스트를 사용할 때 "네이티브 메시징 호스트와 통신 할 때 오류가 발생했습니다"오류를 표시하는 크롬 확장 로그가 표시됩니다. –
당신의 커뮤니케이션 C++ 코드를 게시하십시오. –