草庐IT

虚拟号安全

全部标签

c++ - 在运行时在 v110 可执行文件中使用 v90 COM dll 是否安全?

在使用v110编译器构建的可执行文件中使用使用v90编译器构建的COMdll是否安全?可执行文件在运行时通过COM接口(interface)使用v90dll(它不是#imported)。可执行文件是根据dll的tlb构建的。两者都静态链接到MFC,并且都使用/MT版本的运行时库。我的理解是这是可能的,但并不安全。由于存在使用注意事项(即内存分配不同,因此不能在dll中分配对象并在可执行文件中删除对象,因为这会导致意外行为)。有人可以为我澄清一下吗? 最佳答案 是的,它是安全的。前提是您遵守COM规则。COM规则是ABI1规则,包括与

windows - Windows开发用虚拟机用什么软件?

作为程序员的副业,我需要Windows。它将安装在VMWareFusion中。我将主要编写Matlab-Mex文件的C代码、一些DSP开发、一些简单的C和C++命令行工具作为教程,并希望使用VisualStudio编写一些简单的GUI。我将使用VisualDSP++、BloodshedDev-Cpp、Matlabmex-compiler和VisualStudio。虚拟机主要必须在MacBook2.1GHz/4Gb上运行。现在这是我的问题:我应该使用Vista还是XP?我更喜欢第一个,但担心性能,尤其是使用VisualStudio时。我应该使用VisualStudio2008Pro还是E

c++ - 远离 Windows\C++ 中的虚拟内存

我正在编写一个性能关键型应用程序,它必须在转储到磁盘之前在物理内存中存储尽可能多的数据。我可以使用::GlobalMemoryStatusEx(...)和::GetProcessMemoryInfo(...)来找出多少百分比的物理内存是保留\空闲和我当前的进程处理了多少内存。使用此数据,我可以确保在使用了约90%的物理内存或达到每个应用程序最大2GB限制中的约90个时进行转储。但是,我想要一种方法来简单地接收在系统开始使用虚拟内存之前实际剩余的字节数,尤其是当应用程序将针对32位和64位编译时,而2GB的限制不存在。 最佳答案 这个

c - 在 Windows XP 中手动更新 shell32.dll 是否安全/实用?

我正在运行我的开发环境WindowsXP。我需要访问函数SHGetKnownFolderPath。我的团队建议我用他们的更新我的shell32.dll并更新我的头文件。函数记录在这里:http://msdn.microsoft.com/en-us/library/bb762188%28v=vs.85%29.aspx现在,了解这个问题的重点是通过复制粘贴手动覆盖/更新shell32.dll的可行性。请不要以上述功能的解决方法/替代方案作为回应。这不是这个问题的重点。简单地使用Windows7版本的shell32.dll并粘贴到我的(在XP中)是否安全?我不敢测试它,因为害怕毁了我的整个操

c++ - 在 C++ 中返回运行时可用虚拟内存的大小

在C++中是否有一个预定义的库函数可以在运行时返回正在运行程序的计算机上当前可用的RAM大小?例如,如果一个对象是4字节,那么我们能否将可用虚拟内存除以4字节以估计程序可以安全地存储更多对象?我在我的程序中使用了sizeof()函数来返回对象的大小。因为在有用的回复中经常被问到这一点-该程序运行的平台是Windows(7)。谢谢 最佳答案 不在C++标准库中-虽然您的操作系统可能通过特定于平台的API提供此功能。 关于c++-在C++中返回运行时可用虚拟内存的大小,我们在StackOve

c++ - Windows上的大型连续虚拟内存分配

最近,我遇到了在具有16GB物理内存的64位Windows系统上分配大约4GB连续内存(物理或虚拟)块的需求。我尝试使用new[]分配此缓冲区,但是它抛出了std::bad_alloc。例如,以下失败:char*buffer=newchar[LARGE_BUFFER_SIZE];当我按块分配缓冲区时(我为一块使用1024字节),但是我可以达到4GB的内存。因此,以下代码不会失败:char**buffer=newchar*[LARGE_BUFFER_SIZE/CHUNK_SIZE];for(size_ti=0;i缺点是内存不连续。是否可以使用Windows提供的C或C++标准库例程或函数

c - 安全移除安装的驱动器

我有一个应用程序可以通过SATA接口(interface)将文件写入格式化为NTFS的外部驱动器。在关闭应用程序之前,我确保使用FlushFileBuffers为每个文件刷新所有内容(即CreateFile、FlushFileBuffers、CloseHandle)。然后我卸下驱动器,而不是先卸载它!将驱动器重新插入PC机时,这似乎工作正常。但是,将其插入OSX时,操作系统似乎找不到任何文件,除非驱动器已正确卸载。磁盘中可能缺少什么导致OSX找不到任何东西,有没有一种方法可以在不卸载驱动器的情况下刷新数据?编辑:使用exfat我遇到了“脏”驱动器在重新安装时不可写的问题。

windows - 使用 VirtualBox(或 VMWare)虚拟化内联网络设备

我的设备是一个基于Linux的IP内联器,它对网络外围设备是透明的,也就是说,没有为其任何接口(interface)分配IP地址。为了便于讨论,让我们以ADSL连接为例,当设备检查双向流量时,网络的行为就像设备不存在一样,连接到电线(请参阅物理设置附图)。我想知道我是否可以将该“设备”封装在Windows机器中并让它虚拟运行,以便它仍然通过使用虚拟NIC(或它们在Windows中的名称)在ADSL路由器和Windows网络接口(interface)之间内联,并检查流量,就像在单独的物理设备上一样,附图中“虚拟设置”下的绘图显示了我想要实现的目标。稍微阅读一下VirtualBox文档,似

c++ - 使用 CreateWindow(Ex) 创建虚拟父控件(如面板)

所以基本上,我有一个选项卡控件(WC_TABCONTROL),我想将所有与单个选项卡页一起出现的控件放在一个窗口上(控件,如果你愿意,或者面板).我想在wxWidgets中创建类似面板的东西,这样当我调用ShowWindow(panel,SW_HIDE)时,我可以隐藏面板和其中的所有控件。我希望你明白。谢谢,格兰特。 最佳答案 我想你想要的是一个无边框、无标题的对话框。我已经在选项卡控件中使用了这个东西。在选项卡控件点击事件上显示和隐藏它们。实际上,一些选项卡控件会在它们自己的标题中使用对话框的标题。YMMV.这是一个老派的例子。它

c - 如何将对象的安全描述符重置为默认值?

作为测试实用程序的一部分,我正在创建一些注册表项并向它们应用特定的安全描述符。稍后我想将它重置为“默认”安全描述符(即从父级继承)。执行此操作的正确方法是什么?我无法保存和恢复原始安全描述符,因为此实用程序可能会在测试人员想要重置它之前运行多次。我想我可以将它保存到临时文件或注册表值中,但我更喜欢更优雅的解决方案。那么,我必须对父级的安全描述符做些什么吗?我很难弄清楚该怎么做。差点忘了说我是用C语言做的。更新:我应该补充一点,我还将对文件(以及可能的其他安全对象)执行此操作,因此如果有一种通用的方法来处理安全描述符就更好了他们自己而不是使用特定于对象的东西,如RegSaveKey。我想