请在某些上下文中查看此问题:链接未引用的库会破坏我的程序
我有以下程序:
#include <iostream>
int main( int argc, char* argv[] )
{
std::cout << "Hello world" << std::endl;
int *p;
p = new int(3);
std::cout << *p << std::endl;
delete p;
return 0;
}
在我链接到第三方库之前它工作正常。当我链接到我在一个更大的程序中需要的 Abaqus 库时,上面的程序在尝试运行时崩溃delete p;
。使用 Dependency Walker,我发现调用operator new
链接到operator new
Abaqus 提供的定义。但是,调用operator delete
链接到标准定义。
我已将new
/delete
替换为::new
/::delete
并得到相同的结果。
有没有办法解决标准的新/删除运算符?或者,我可以强制 Visual Studio 链接到这些运算符的正确(标准)定义吗?