从dll构造第一个变量时发生访问冲突

从dll构造第一个变量时发生访问冲突,dll,access-violation,class-constructors,Dll,Access Violation,Class Constructors,我已经创建了一个包含我自己的数学库的dll。这个库允许我使用它的类和一些插值方法。但是当我的程序第一次从这个dll创建一个类时,它会生成一个第一次发生的异常访问冲突。在那之后,所有的类和它们的方法都很好,程序运行和关闭都很好。这是我的代码生成的唯一错误,显然会阻止它在发行版中运行 属性页中是否缺少某些内容?或者我需要声明类方法virtual METHOD()=0吗?(我这样问是因为在一个类中添加了很多内容来测试这一点) 我已经用/VERBOSE运行来检查链接器阶段,一切正常,生成的dll没有任何

我已经创建了一个包含我自己的数学库的dll。这个库允许我使用它的类和一些插值方法。但是当我的程序第一次从这个dll创建一个类时,它会生成一个第一次发生的异常访问冲突。在那之后,所有的类和它们的方法都很好,程序运行和关闭都很好。这是我的代码生成的唯一错误,显然会阻止它在发行版中运行

属性页中是否缺少某些内容?或者我需要声明类方法virtual METHOD()=0吗?(我这样问是因为在一个类中添加了很多内容来测试这一点)

我已经用/VERBOSE运行来检查链接器阶段,一切正常,生成的dll没有任何问题。我被这个问题难住了,我似乎很奇怪,它在第一次创作时就创造了这个问题,但后来就没问题了

任何提示都会很有帮助,我已经浪费了好几个小时在这个错误上了


谢谢。

解决了!编译dll时缺少由VS2010生成的dllmain.cpp。在C++中,任何一个ELSS VS都没有生成这个文件,其中包括“StdAFx.h”BoOL ApIccess DLMILN(HMULTHOME模块,DWord ULLeTraceFuxLead,LPATOLL LIST){Switter(ULL TraceFuffEyLoad){案例DLLYPrimeAdjyAd:DeLDLL THEADEXPLAYNUL:DYLLL THEXTRAIL DELACK: DRLL进程断绝;中断;}返回true;} /P>您使用C++吗?在IDE上运行它,并查看异常发生的地方。是的,它在C++中,IVE在VS2010中运行,我能得到的唯一信息就是它的堆损坏。调用堆栈只是告诉我它发生在哪个方法中。如果我把我的类构造函数移到其他错误发生的地方。我原以为这是类中的虚拟析构函数,但可惜不是。结果不知怎的,我的rundll32坏了。这就是奇怪的错误。我将调查这是怎么发生的。令人恼火的是,我不能回答我自己的问题,哦,我们必须在社区中提供更多帮助。顺便问一下,这是因为我在使用vista吗?我听说直到Win7才发现程序之间存在内存保护。解决了!编译dll时缺少由VS2010生成的dllmain.cpp。如果其他人没有生成此文件:#包括“stdafx.h”BOOL apient DllMain(HMODULE HMODULE,DWORD ul_reason_for_call,LPVOID lpReserved){开关(ul_reason_for_call){case-DLL\u-PROCESS\u-ATTACH:case-DLL\u-THREAD\u-ATTACH:case-DLL\u-THREAD\u-DETACH:case-DLL\u-PROCESS\u-DETACH:break;}返回TRUE;}它不会让我发布它,这就是为什么它会出现在上面的注释中。