이 C++ 오류로 인해 매우 손실됩니다.exe와 dll 사이의 C++ 호출에서 오류가 발생했습니다
".lib"을 내보내는 "exe"가 하나 있는데이 ".lib"을 가져 오는 "dll"을로드합니다. 이 방법 whituout 문제를 사용할 수 있습니다. 하지만 "EscapeJson"을 사용할 때 예외가 나타납니다. 내가 코드를 라이브러리에 복사하고 "CoreHelper :: EscapeJson"을 "EscapeJson"(같은 라이브러리)로 바꾼다면 모두 Ok입니다 ...
무엇이 잘못 되었습니까?
또한 코드가 작동
My.EXE (Export) -> My.lib (Import) -> MyDll.dll
^ |
`---------------------------------------
은 "EscapeJson는"성공적으로 값을 반환하기 때문에 ...
탈출 JSON 소스
std::string CoreHelper::EscapeJson(char * input, int length)
{
std::ostringstream o;
for (int x = 0; x < length; x++)
{
char c = input[x];
switch (c)
{
case '"': o << "\\\""; break;
case '\\': o << "\\\\"; break;
case '\b': o << "\\b"; break;
case '\f': o << "\\f"; break;
case '\n': o << "\\n"; break;
case '\r': o << "\\r"; break;
case '\t': o << "\\t"; break;
default:
if ('\x00' <= c && c <= '\x1f')
{
o << "\\u"
<< std::hex << std::setw(4) << std::setfill('0') << (int)c;
}
else
{
o << c;
}
}
}
return o.str();
}
당신은 내 라이브를 저장! 감사! –