我有一页信息-字符串当内容在 JNI ( cpp dll ) 中时,我能够看到整个内容,但是当我们在 java 中看到相同的字符串时,最后一个单词被剪裁/截断。所以为了调试,我试图将JNI中的内容写入日志txt文件。
JNIEXPORT jstring JNICALL Java_com_native_ExeCOM_GetResultDetails
(JNIEnv *env, jclass obj)
{
_bstr_t bstrIntermediate( execution->GetResultDetails());
//WriteContentToLog((LPCTSTR)bstrIntermediate); //Able to write this to log (no loss)
CString strFinal;
strFinal.Format(_T("%s"), (LPCTSTR)bstrIntermediate);
//WriteContentToLog((LPCTSTR)strFinal); //Able to write this to log (no loss)
return env->NewStringUTF(strFinal);
}
using namespace std;
#define FILE "C:\\Temp\\debug.txt"
ofstream DEBUG_STRM;
void WriteContentToLog(const std::string &msg){
DEBUG_STRM.open (FILE,fstream::app);
DEBUG_STRM <<msg<<"\n"; DEBUG_STRM.close();
}
返回 jstring 后,如果我们从 java 端分析相同的内容,则内容中的最后一个单词被截断/截断。
我想看看最后一行"env->NewStringUTF(strFinal)"是否发生了截断 。1. 我可以将最后一行返回的内容写入日志文件吗?2. 为什么只有最后一个单词被截断(因为我已经测试了大小)?
有人可以帮助我吗?