我正在尝试开始编写有关 libclang 库的教程,但在调用该函数时出现访问冲突clang_getSpellingLocation()
。有关错误的其他信息通过错误计数、行和列正确报告。
我的环境:C++Builder XE pro、Windows 7 32bit、LLVM 3.4、libCLang.lib 使用 coff2omf、libCLang.dll 转换。
我在 Visual C++ 2010 上测试了相同的代码,它工作正常。
请问有人可以帮我解决这个问题吗?
我的简单代码
//---------------------------------------------------------------------------
void __fastcall TForm8::Button1Click(TObject *Sender)
{
unsigned line, column;
CXIndex index = clang_createIndex(0, 0);
const char * args [] = {
"-I/usr/include" ,
"-I."
};
int numArgs = sizeof ( args ) / sizeof ( * args );
CXTranslationUnit tu = clang_parseTranslationUnit(index, "G:\\projects\\LibCLang \\File2.cpp", args, numArgs, NULL, 0, CXTranslationUnit_None);
unsigned diagnosticCount = clang_getNumDiagnostics ( tu );
for ( unsigned i = 0 ; i < diagnosticCount ; i++ )
{
CXDiagnostic diagnostic = clang_getDiagnostic ( tu , i );
CXSourceLocation location = clang_getDiagnosticLocation(diagnostic);
clang_getSpellingLocation(location, NULL, &line, &column, NULL);
CXString text = clang_getDiagnosticSpelling(diagnostic);
UnicodeString s = clang_getCString(text);
}
}