草庐IT

default_delete

全部标签

c++ - new 后面一定要跟着 delete 吗?

这个问题在这里已经有了答案:关闭13年前。我想我们都明白在重新分配动态分配的指针以防止内存泄漏时delete的必要性。但是,我很好奇,C++在多大程度上强制使用delete?比如下面这个程序intmain(){int*arr=newint[5];return0;}虽然出于所有意图和目的,此处不会发生泄漏(因为您的程序正在结束,操作系统将在返回后清理所有内存),但标准是否仍然需要——或推荐——使用delete[]在这种情况下?如果不是,是否还有任何其他原因导致您在此处删除[]?

c++ - 为什么 delete 可以在指向 const 的指针上执行而 free 不能?

我刚刚注意到传递给delete的指针可以是const限定的,而传递给free的指针则不能。这对我来说真是个惊喜。在C++中,operatordelete的重载应该有如下签名:voidoperatordelete(void*p);但是给参数指针加一个const是无效的:voidoperatordelete(voidconst*p);谁能告诉我为什么delete是这样设计的? 最佳答案 free不应与实际的C++对象一起使用。free应与malloc一起使用,因此您不应在使用new分配的内容上使用free。至于为什么可以deleteco

windows - Remove-Item 不起作用,Delete 起作用

有谁知道为什么Remove-Item会失败而Delete有效?在下面的脚本中,我得到了我想要删除的文件列表。使用Remove-Item我收到以下错误消息:VERBOSE:Performingtheoperation"RemoveFile"ontarget"\\UncPath\Folder\test.rtf".Remove-Item:Cannotremoveitem\\UncPath\Folder\test.rtf:Accesstothepathisdenied.但使用Delete会在我们说话时删除这些文件。脚本$files=gci\\UncPath\Folder|?{$_.LastWr

windows - 当 VAR_LOCALE_USER_DEFAULT 作为参数提供时,是什么导致 VarDateFromStr 无法使用当前用户的区域设置

这是thatquestion的跟进.正如所问,当VAR_LOCALE_USER_DEFAULT作为参数提供时,是什么导致VarDateFromStr(来自Oleaut32.dll)无法使用当前用户的区域设置?因此,我们的应用程序遇到了很多问题。在有问题的系统上,如果我们执行以下代码:procedureTForm1.Button3Click(Sender:TObject);varV:Variant;dte:TDateTime;beginV:=Label28.Caption;dte:=VarAsType(V,varDate);//ImplicitlycallsVarDateFromStrV

Windows .inf 文件 : how do I set the default Network Connection name during network driver install?

我正在尝试改编开源TAP-Win32driver对于我的项目。当它安装时(至少在Windows7上,我认为WindowsXP也是如此),它会在设备控制面板中创建一个名为“TAP-Win32AdapterV9”的设备。这很容易通过编辑OemWin2k.inffilethatcomeswithit来改变。.但是,该设备随后会连接到Windows网络浏览器中的网络,默认情况下它的名称类似于“本地连接2”。我可以使用GUI轻松重命名它:只需单击网络并按F2。但我的问题是:我正在处理的网络设备绝对不是“本地连接”,它实际上是一个虚拟网络设备。我该怎么做才能使名称​​默认使用我选择的更具描述性的名

java - Inno 安装程序 : Extending Windows default apps list

如何将我的应用程序列在Windows默认应用程序列表中?我有一个特殊的基于Java的视频播放器应用程序,其安装程序由InnoSetup创建。我希望我的应用程序列在Windows10上的可选视频播放器列表中(我也不知道如何使用较旧的Windows版本执行此操作)。 最佳答案 有关一般信息,请参阅:RegisteringanApplicationforUsewithDefaultPrograms在Microsoft文档上。HowdoIaddmyapplicationintheDefaultProgramslistofWindowsVis

windows - 警告 : cannot find entry symbol nable-stdcall-fixup; defaulting

此mingw包含gcc4.6.3,名称为-i686-w64-mingw32。在Windows上,一个Qt的.pro文件w.r.t一个helloworld程序:QT+=coreguiTEMPLATE=appTARGET=efSOURCES=ef.cppDEPENDPATH+=.INCLUDEPATH+=.INCLUDEPATH+=c:/R-2.15.1/includeINCLUDEPATH+=c:/R-2.15.1/library/Rcpp/includeINCLUDEPATH+=c:/R-2.15.1/library/RInside/includeLIBS+=-Lc:/R-2.15.1

windows - 在 Vista 和 XP 中模拟 Control-Alt-Delete 键序列

我可以在C#/C++代码中模拟Vista中的Control+Alt+Delete序列吗?何时启用/禁用UAC?在XP中是如何实现的?您能否提供在Vista中运行的代码示例? 最佳答案 用于模拟安全注意序列(SAS)的现有代码(大多数人将其称为控件alt删除或ctrl-alt-del)在WindowsVista中不再有效。微软似乎提供了一个导出名为SimulateSAS()的函数的库。它不是公开的,应该通过向saslib@microsoft.com发送邮件来请求它。有一个similarlibrary具有以下功能:无论有没有工作用户帐户

windows - CreateFile 如何以 FILE_SHARE_READ 失败并以 FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE 成功?

自己试试:创建一个XLS文件,在Excel中打开它。打开sysinternalsProcessMonitor,观察在资源管理器中复制XLS文件时发生的情况(只需按ctrl-cctrl-v)。连续两次调用::CreateProcess。第一次调用要求读取权限,并被拒绝访问。第二次调用要求读加写加删除并通过。这正常吗? 最佳答案 如果您使用FILE_SHARE_READ打开一个文件,您表示您愿意共享对该文件的访问权限,但仅限于读取。如果您使用所有标志打开,您也愿意共享写入/删除访问权限。FILE_SHARE_READ比FILE_SHAR

c++ - 当我真的不关心调用约定时,我是否应该更喜欢 "default"调用约定而不是 __fastcall?

我们有一个庞大的C++代码库,其中包含大量COM对象。暴露给COM的每个函数都必须有__stdcall调用约定(通常是STDMETHODCALLTYPE宏),因此我们有很多标记为STDMETHODCALLTYPE的函数。现在我看到一个函数不是通过COM直接调用的,而是仅从我们的C++代码中调用的,并且该函数的签名中也有STDMETHODCALLTYPE宏。我完全确定宏在那里毫无用处-从未发生过通过COM调用该函数的情况。我是否应该删除__stdcall以便它成为“默认”调用约定函数?我如何做出这样的决定? 最佳答案 我的方法是对内部