我遇到了一个非常奇怪的问题。 我的c ++程序使用我编写的DLL。 此DLL导出一个类MyDocument。
#ifdef WIN32
# if defined(CORE_EXPORTS)
# define CORE_API __declspec(dllexport)
# elif defined(MCORE_IMPORTS)
# define CORE_API __declspec(dllimport)
# else
# define CORE_API
# endif
#else
# define CORE_API
#endif
class CORE_API MyDocument
{
public:
...
};
当我的客户端程序尝试创建此对象的数组时,在调试模式下需要7秒以上(差不多10秒)。
MyDocument *docs = new MyDocuments[550];
我读过在env变量中使用_NO_DEBUG_HEAP = 1但它没有改变任何东西。
无论如何,我发现了一些奇怪的东西。我没有导出类MyDocument,而是将整个代码放在头文件中,这样我就可以通过包含它的头文件来使用它。 在这种情况下,相同的分配声明几乎是即时的。
MyDocument *docs = new MyDocuments[550];
谦虚地说,我不知道那里发生了什么。
有什么建议吗?
我的配置:使用VS Express 2008的XP。
Ž。
答案 0 :(得分:0)
请检查您的compine单元中是否明确定义了CORE_EXPORTS或CORE_INPORTS,其中包含该头文件。