草庐IT

VC_runtime

全部标签

c# - Java Runtime Environment 与.NET Framework 在编译过程方面相比如何?

我正在学习如何通过.NET和JRE框架将源代码转换为机器代码。首先,我做了一些研究,比较了这两个过程并创建了thisdiagram.我需要一些帮助来批评它的正确性,更重要的是添加我遗漏的任何重要内容以更好地理解编译路径。 最佳答案 .NET和Java都编译成字节码,这是一种包含虚拟机指令的中间语言。它不是机器代码,因为它不能直接在物理机器上运行。相反发生的事情(至少在今天;Java在这方面有更黑暗的历史)是在运行时运行一个即时编译器,它将VM指令转换为native代码,然后直接运行。与仅解释它相比,这具有重大的性能优势。他们在这方面

java - IntelliJ gui creator : JPanel gives runtime null pointer exception upon adding any component

我在使用IntelliJ的javagui创建时遇到问题。不幸的是,面板背后的大部分代码都隐藏在guicreator中,我无法编辑。我使用ItelliJGridLayoutManager创建了一个空白的JPanel“questionPanel”。当我尝试向该面板添加任何内容时,即使面板绝对不为空,我也会收到空指针异常。我还尝试将JTextField添加到布局中(出于好奇),但这也无济于事。JTextField出现了,但我仍然无法从代码中添加任何内容。当我将布局管理器更改为其他任何东西(GridBagLayout、FormLayout、BorderLayout等)时,我不再收到错误,但什么

java - Eclipse war 导出 : optimize for a specific server runtime

在eclipse中,将web项目导出到war/ear文件时有这个选项"Optimizeforaspecificserverruntime"选择此选项后,幕后会发生什么?到目前为止找不到相关的解释。我正在运行EclipseIndigo3.7。 最佳答案 Eclipse本身不对该选项做任何事情。发生什么取决于特定的服务器适配器。许多适配器也不使用此选项执行任何操作,但它们将来可能会执行任何操作。如果服务器适配器确实支持导出优化,它可以选择在运行时的弹出列表下方显示自定义选项,因此这是一个很好的提示,可以用来查看是否会发生某些事情。例如,

c++ - std::runtime_error::what() 在使用嵌套异常时导致访问冲突

我不是在寻找解决这个问题的方法,只是想了解它的原因。一位同事向我展示了一些代码,这些代码在由VisualStudio2008编译以在WindowsMobile6ARMV4I下运行时会导致访问冲突。同样的代码在x86Windows下运行良好,他声称它在GCC编译的Linux下运行(我尚未验证)。我将问题归结为以下代码:intmain(intargc,char*argv[]){try{throwstd::runtime_error("a");}catch(std::runtime_error&e1){try{try{throwstd::runtime_error("b");}catch(s

c# - C# 中的 VC++ __stdcall 回调

我正在开发一个需要调用C++dll的C#gui应用程序。似乎所有电话都在工作,特别是一个电话除外。从C++头文件中,函数和回调签名如下:typedefvoid(__stdcall*LPFNDLL_RECEIVE_CALLBACK)(CANMsg*);USBCANPLUS_APICAN_STATUS__stdcallcanplus_setReceiveCallBack(CANHANDLEhandle,LPFNDLL_RECEIVE_CALLBACKcbfn);根据阅读资料,我设置了内部类,并这样包装了调用:[DllImport("USBCanPlusDllF.dll")]publicst

c++ - VC9 C++ 语言扩展引用

是否有关于VC9(SP1)编译器具有的所有C++扩展的引用?示例是__declspec东西、可变参数宏和编译器内在函数,尽管还有一些不太引人注目的东西,比如能够在类范围内拥有模板函数特化,而显然标准说它们不能(PreviousQuestion).这包括支持的C99、TR1、C++0X等的任何部分。有关VC10的信息也很有用,我知道它包含C++0X的某些部分,但还有什么?我在MSDN上找到了零零碎碎的东西,但没有真正的列表,除非我知道扩展的名称,或者至少知道足够的相关信息(即它的作用),否则它是不可能的。 最佳答案 VisualStu

c++ - Qt Release build 给出 MSVC++ Runtime Library Error

在Debug模式下构建时,我有一个完美运行的应用程序(带有大约16个DLL的exe)。然而,一旦我切换到Release,获取exe和构建的所有DLL,所有必需的DLL从QtSDKbin复制过来,我就会遇到运行时错误。我应该如何排查发生的问题?这是一个普遍的问题吗?我没有任何入口点等,甚至无法从...开始。只是一个一般的运行时错误。我发现的唯一类似问题是here,但这是来自更旧版本的Qt。4.7.4只有一个bin文件夹。编辑1-除了创建我的MainWindow对象之外,我已经注释了我的main.cpp中的所有内容,以及我的MainWindow构造函数中的所有内容,所以它应该只是打开一个空

c++ - VC是否符合警告C4407的标准?

以下源代码在VC中生成警告C4407,编译器确实生成了不正确的代码。structA1{inta1;};structA2{inta2;};structB:A1,A2{voidf(){std::cout*pb)();(pA->*pa)();}产生的代码不正确,因为在调用pa时没有调整指针pA,导致中的this指针值错误f。但是,代码在GCC和clang中编译良好,没有任何警告(严格别名除外)。指针pA在GCC和clang生成的代码中进行了适当的调整。所以,我想知道标准对此有何看法?上面代码中的转换是否符合标准?或者它是GCC和clang的非标准扩展? 最佳答案

c++ - 为什么不编译? (VC++ 2015,#pragma omp flush)

这是一个最小的例子。在VisualC++2015上使用“/openmp”编译。#includevoidmain(){boolfoo=false;#pragmaompflush(foo)std::vectorbar;}我得到:C2146syntaxerror:missing';'beforeidentifier'bar'C2275'std::vector>':illegaluseofthistypeasanexpressionC2065'bar':undeclaredidentifier如果我注释掉#pragma,错误就会消失。如果我将std::vector替换为int,错误就会消失。如

c++ - VC++ 警告 C4356 : static data member cannot be initialized via derived class

以下代码发出此警告,但它似乎工作正常,因为A::st和B::st都已初始化并且实际上代表相同的字符串。据我了解,这是格式错误的代码,不应编译(我检查了clang)。我想知道为什么VC++不发出错误而是发出警告?#include#includeclassA{public:staticconststd::stringst;};classB:publicA{};conststd::stringB::st="abcd";//warningC4356:'A::st':staticdatamembercannotbeinitializedviaderivedclassintmain(){std::