我想知道如何在 Windows 7 或 NT 上将 CINT 嵌入到 C++ 代码中。
在 windows7 上,我需要编写一个 C++ 程序,从输入文件中读取 C++ 程序,运行它并计算在运行期间执行了多少行代码。我发现最好的方法是 (1) 更新读取的程序代码,这样一旦其中的命令被执行,计数器值就会增加(对于像 return 或 break 这样的命令,计数器值会在执行前增加), (2) 用 C++ 解释器执行更新后的程序,一旦返回就读取计数器值。我将不胜感激其他解决此问题的方法。
我在网上搜索了一下,发现 CINT 是正确的解释器(虽然很旧)。我从 ROOT 主页下载它,安装它并抛出 TestApp 演示,但是构建它我遇到了一个链接错误我没有找到如何解决。因此我需要你的帮助。
如果有人能给我提供一个在 Windows 上的 C++ 代码中嵌入 CINT 的项目,那么我就可以在我的机器上进行测试,并找出我的错误。
我也会感谢任何其他有值(value)的输入。
提前致谢
一个更合理的替代方法是在阅读源文件时对其进行修改。例如,当这是您的输入时:
void foo() {
std::cout << "Hello";
std::cout << " World" << std::endl;
}
你把它变成这样:
static int LineCounter = 0;
extern "C" int getLineCounter() { return LineCounter; }
extern "C" void foo() {
++LineCounter;
std::cout << "Hello";
++LineCounter;
std::cout << " World" << std::endl;
}
并将其传递给编译器。将其编译成 DLL,调用 LoadLibrary
、GetProcAddress("foo")
和 GetProcAddress("getLineCounter")
。
我是一名优秀的程序员,十分优秀!