使用非常大的文件创建一个DLL

时间:2011-12-21 10:10:44

标签: c++ dll large-files

这是我第一次在这个论坛上写作,我希望有人可以帮助我。我一直在网上搜索,但没有找到任何与我的问题相关的答案。

我有一个非常大的文件(约25000行),其中包含数千个必须由另一个文件使用的定义

使用特殊工具将所有这些文件(以及大约600多个文件)转换为.c文件。我几乎可以肯定这种转换是属性的。

如果我创建包含所有这些文件的a.exe,则没有问题,一切正常。不幸的是,当我尝试访问非常大的文件时,我需要一个崩溃的.dll。

我已经检查过它的.obj文件是否大于65MB所以我已经在互联网上看到了添加编译器命令/ bigobj,但它没有解决问题。

我还检查了访问大文件时发生的问题,因为当我加入这两个文件时一切正常(这在我的开发中是不可能的)

我正在使用Visual 2008

是否与编译为C(/ TC)或C ++(/ TP)代码有关? .exe和.dll之间有什么区别可能导致我的程序崩溃?

有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

事实上,如果没有代码那么多可以说......(不知道是否有人会耐心地阅读600个文件,每个文件有25k行代码:))

作为建议,在调试模式下重建exe和dll,从MSVC运行exe,然后在你知道它崩溃的地方放置一个断点。接下来,从监视窗口获取地址后,在变量上设置数据断点。假设应用程序执行正确的操作,然后指针设置,但在此过程中丢失;这意味着它应该被触发两次。 或者,尝试断言检查。

另一种情况是因为变量是易变的。 另一种情况是从临时值返回值并丢失... 最后但并非最不重要的是,由于错误的\恶劣条件,价值从未设定......

如果您的问题是崩溃而不是缺失值,只需执行空检查并返回呼叫,如果您真的想避免复杂化,但是,我建议您找到未设置值的原因。你的选择。