这个"CRT not initialized"错误是怎么回事?
What's with this "CRT not initialized" error?
我在Visual Studio 2012 Express(当然是桌面)中创建了一个空的C 项目,并添加了一些随机的基本代码:
#include <cstdio>
#include <cstdlib>
typedef struct examplestruct
{
unsigned char num1;
unsigned short num2;
unsigned long num3;
unsigned long long num4;
} EXAMPLESTRUCT;
void examplefunction(unsigned long *num, int num2)
{
*num += num2;
return;
}
int main(int nArgs, char **pszArgs)
{
EXAMPLESTRUCT ExStructInstance = {0xFF, 0xFFFF, 0xFFFFFFFF, 0xFFFFFFFFFFFFFFFF};
printf("%d, %d, %u, %ulln", ExStructInstance.num1, ExStructInstance.num2, ExStructInstance.num3, ExStructInstance.num4);
unsigned long num5 = ExStructInstance.num1 + ExStructInstance.num2;
printf("%dn", num5);
examplefunction(&num5, 10);
printf("%dn", num5);
system("pause");
return 0;
}
(如果您想知道这到底是怎么回事,我正在拆卸创建的可执行文件以观察优化编译器的行为,并了解有关X86汇编的更多信息。)
在项目设置中的链接器下,我为运行时库选择了Multi-threaded (/MT)
,因此它将静态链接。
我编译并开始使用F5进行调试,并立即在消息框中遇到此错误:
运行时错误!
程序:C: Users xxxxx documents p ...
R6030
- CRT不初始化
因此,由于运行时库的某些问题,这个基本程序不会运行,我无法找到!
有什么想法吗?我想知道这里发生了什么。预先感谢!
编辑:fyi,这都是在发布模式下完成的。
使用"空项目"模板启动一个新项目,具有造成麻烦的诀窍。您可能更改了另一个项目设置,该设置会导致您的程序从Main()方法而不是正常的入口点(CRT启动功能)启动。初始化CRT,然后调用main()。很难猜测您是如何做到的,尤其是当您谈论将链接器设置更改为/MT时。那是编译器设置。
通过使用WIN32 WIN2 CONSOLE应用程序模板落入成功坑中。删除预生成的代码,减去顶部的#include <stdafx.h> line
。至少您现在有一个起点可以帮助我们解决问题。并且不要跳过" Hello World"程序。
我解决了问题,这是我的故障。
我已经在链接器设置中明确将入口点显式设置为main
。
使用CRT的控制台程序实际上具有一个称为_mainCRTStartup
的入口点,该入口点在调用程序的main
函数之前初始化CRT,这几乎是"伪入口点"。
如果您在链接器设置中自己设置了入口点,则_mainCRTStartup
从未被调用,因此CRT永远不会初始化;该程序从main
开始,无法执行CRT功能。
我只是简单地删除了明确定义的入口点,一切都起作用。
您每天都学到新知识。
- 使用递归的数组的最小值.这是怎么回事
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 我使用 OpenMP 的线程越多,执行时间就越长,这是怎么回事?
- 绕道重铸瓷砖层是怎么回事
- 架 (U+67B6) 与en_US不符.UTF-8.这是怎么回事?
- R 中的算术在数字上比整数更快。这是怎么回事?
- 我的代码运行良好,但现在当尝试将其制作成模板时,我遇到了许多看似无关的错误。这是怎么回事?
- 在变量名后声明带有 () 的非内部类型与不使用变量名的行为不同。即 std::map<int,char>x(); - 这是怎么回事?
- 弄清楚这段代码是怎么回事(递归下降案例研究)
- 分配器密集和稀疏是怎么回事?
- 传递引用C++,指针的向量.这是怎么回事?
- __vector_base_common是怎么回事?
- (对象)不命名类型.怎么回事
- 变量已在 .obj 中定义;这是怎么回事?
- Sublime上的EasyClangComplete是怎么回事?
- 重复输出的类型是怎么回事,它如何区分迭代次数和 Ascii 代码?
- "enable_if"使编译器很难生成可读的错误消息,这是怎么回事
- 这个"CRT not initialized"错误是怎么回事?
- 一台计算机中出现 msvs 2013 错误 C2057,另一台计算机中没有错误。这是怎么回事?
- Visual Studio 上的 CRT SECURE 警告/错误是怎么回事?