草庐IT

new-expression

全部标签

c++ - 在 MS VC 2013 Express 中将 C++ dll 从 32 位转换为 64 位

我的代码可以在32位和64位配置中编译,但只有第一个运行良好。我用depends.exe打开库,如果是64位,我会看到两条错误消息:Error:Atleastonemodulehasanunresolvedimportduetoamissingexportfunctioninanimplicitlydependentmodule.Error:ModuleswithdifferentCPUtypeswerefound.在depends.exe的模块列表中,我看到我的dll的CPU类型是x64,但其他一切都是x86(其他一切都应该是动态链接的)。在动态链接的情况下,如何告诉VC使用64位库

c - OpenSSL 1.0.2 和错误 "SSL_CTX_new:library has no ciphers"

我正在尝试编译并运行来自libest的示例(客户端简单)。为此,我在Windows上编译了OpenSSL,然后用它编译并链接了libest。问题是当我运行程序时,我得到了error:140A90A1:SSLroutines:SSL_CTX_new:libraryhasnociphers:查看调试器中的代码,我可以确认调用了OPENSSL_add_all_algorithms_noconf,以及:ERR_load_crypto_strings()ENGINE_load_builtin_engines();SSL_library_init();SSL_load_error_strings(

c++ - VC++ 2008 Express 上的编译器问题,看似正确的代码会引发错误

一段时间以来,我一直试图重新开始编码,所以我想我应该从一些简单的SDL开始,现在,没有文件i/o,编译正常,但是当我输入stdio代码时,它开始抛出错误。这个我不确定,我没有看到代码本身有任何问题,但是,就像我说的,我还是个新手,我想我来这里是为了找一个有更多经验的人这种东西看看吧。我想我的问题可以归结为:“为什么这个不能在Microsoft的VisualC++2008Express下编译?”我已将错误日志附在代码片段的底部。在此先感谢您的帮助。#include"SDL/SDL.h"#include"stdio.h"intmain(intargc,char*argv[]){FILE*s

c++ - 何时使用 VirtualAlloc 与 new?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:What'sthedifferencesbetweenVirtualAllocandHeapAlloc?我想预分配一大块内存,比如1gb来实现内存池。VirtualAlloc使用4kb的页面大小进行分配。在这种情况下使用virtualalloc相对于new有什么优势?这种情况下不应使用new还是使用new而不是虚拟分配有任何缺点?

c++ - 使用 CREATE_NEW_CONSOLE 创建进程并保持控制台窗口打开

我有一个可用的命令行应用程序,它使用WindowsAPI在新的控制台窗口中创建子进程。我正在使用CREATE_NEW_CONSOLE标志,但我需要一种方法来防止新打开的窗口在新进程退出时关闭。这是现有的代码:STARTUPINFOsi;LPCTSTRlpAppName="\\\\fs\\storage\\QA\\Mason\\psexec\\PSExec.exe";stringlpstr="\\\\fs\\storage\\QA\\Mason\\psexec\\PSExec.exe\\\\"+target+"/accepteula-uuser-ppass-s-realtime\\\\f

sql-server - 在 Docker 中安装 MSSQL 2014 Express 时出现 "Value cannot be null. Parameter name: userName"错误

当我尝试在Dockerfile中安装MSSQL2014Express时,它失败并显示错误“值不能为空。参数名称:用户名”。Thefollowingerroroccurred:Valuecannotbenull.Parametername:userNameErrorresult:-2147467261Resultfacilitycode:0Resulterrorcode:16387Pleasereviewthesummary.txtlogforfurtherdetailsMicrosoft(R)SQLServer201412.00.5000.00Copyright(c)Microsoft

c++ - 在 Windows 上释放 C++ 'new' 保留的虚拟内存

我正在编写一个具有两阶段输入过程的32位.NET程序:它通过C++/CLI使用nativeC++将不定数量的文件解析为相应的SQLite数据库(都具有相同的架构)。C++"new"的分配通常会占用最多1GB的虚拟地址空间(超过2GB的可用空间;我知道3GB的扩展,但这只会延迟问题)。它使用复杂的SQL查询(从C#运行)将数据库合并为一个数据库。我将合并数据库的cache_size设置为1GB,以便合并部分的页面错误最少。我的问题是,第2阶段的缓存不会重新使用由“new”分配并在第1阶段由“delete”正确释放的1GB内存。我知道没有泄漏,因为在离开第1阶段后,'私有(private)

c++ - MinGW C++ : expected primary-expression before '/' token

这是我在这里的第一个问题,也是我第一次无法在网上四处寻找解决C++问题的方法。我在这方面相对缺乏经验,不确定什么是相关的,所以我只会发布我认为可能有用的内容。我正在使用SDL制作跨平台应用程序。我在Windows7(64位)上使用MinGW4.6.1,并在另一台计算机上安装了Ubuntu。它在Ubuntu(使用g++)上编译良好,没有任何提示,但是当我尝试在我的Windows机器上使用g++编译时,出现以下错误:...matrix.cpp:77:17:error:expectedprimary-expressionbefore'/'token...matrix.cpp:78:11:er

c++ - 是否有可能获得由 'new' 分配的内存块大小?

你好,我需要记录我的堆,但现在我只想用我的函数重载"new"运算符。我需要总结在malloc()或Heap*()或其他windowsmem*函数之后增加的内存的实际字节数但现在我需要分析当前的堆实现。是否有可能获得像HeapAlloc()函数分配的block大小-HeapSize()?. 最佳答案 我看你没有搜索文档。HeapSize()exists.编辑回想起来,也许您正在寻求HeapSize()的替代方案,您可以在使用新。答案是否定的。标准分配例程没有任何关于内存块的信息,因为:这高度依赖于实现,并且您已经知道block大小(因

c++ - 使用 stringstream::imbue 和自定义全局运算符 new 调试断言失败

对于这个相当本地化的问题,我深表歉意,但我希望得到其他人的看法,以确保我没有做明显错误的事情。我相信我在VisualC++运行时库或Microsoft的std::stringstream实现中的某处遇到了错误。该问题仅在以下情况下出现:imbue()被调用以更改stringstream上的语言环境,并且使用了一个自定义的全局operatornew,它返回一个指针偏移量,该指针与用于分配block的malloc()返回的基址相距。我已经能够使用以下最小测试用例重现此内容:#includestaticvoid*localMalloc(size_tbytes){unsignedchar*pt