草庐IT

Visual-Studio

全部标签

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

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

windows - Visual Studio 在 Windows 7 上将 WINVER/_WIN32_WINNT 设置为 Windows 8?

我正在使用VisualStudio2012在Windows7x64上执行一些测试。看起来Microsoft的工具链正在将_WIN32_WINNT设置为0x602(_WIN32_WINNT_WIN8).运行我们的测试程序导致TheprocedureentrypointGetOverlappedResultExcouldnotbelocatedinthedynamiclinklibraryKERNEL32.dll:我有两个问题。首先,出于病态的好奇,为什么Microsoft将_WIN32_WINNT设置为对执行环境无效的值?我能理解用户是否想要这样做,但微软不行,因为它会破坏一切(q.v.

windows - 如何在 Visual C++ 中确定用户的语言?

我一直在msdn上搜索,但没有直接的答案。有没有办法简单地获取用户的语言?此时我不想加载任何资源或任何东西,我只想获取他们的语言。有什么简单的方法可以做到这一点吗?我使用的是VisualC++,我没有使用MFC或类似的东西。 最佳答案 GetUserDefaultUILanguage呢??警告:切勿将用户的区域设置误认为是他们的UI语言。那里已经有足够多的损坏的应用程序。 关于windows-如何在VisualC++中确定用户的语言?,我们在StackOverflow上找到一个类似的问题

c++ - Visual Studio 在编译文件中存储隐藏数据?

我想知道VisualStudio是否将隐藏数据存储在编译文件(或其他文件)中。我说的是有关程序是用VisualStudio编写的事实的信息数据。 最佳答案 VisualStudio本身不会以这种方式为您的程序添加水印,但通常可以检测到您使用了Microsoft的工具链只是因为一些杂项,即文件中编译了哪些顺序方法,使用了哪些异常实现(MSVC++使用NT的SEH之上的特定异常代码,以实现C++异常;例如,MinGW使用完全不同的系统),以及对函数名称应用了哪些装饰。这些信息是PEID等工具的作用操作。

c++ - Windows中给进程分配内存时,是否总是会触发页面错误?

我正试图在操作系统级别深入了解Windows内存管理的内部机制。难道在分配内存时,总是在幕后触发页面错误吗?这是否意味着停止软页面错误的唯一方法是停止在进程内分配新内存?定义我将“内存分配”定义为任何形式的malloc,即new、LocalAlloc、VirtualAlloc、HeapAlloc等。我将“页面错误”定义为将内存从操作系统池映射到进程工作集的过程,该操作在高端Xeon上持续花费250us。 最佳答案 你需要非常清楚这里发生的不同事情。该进程有两个独立的部分,提交内存和将内存分页到进程中。这些都与调用malloc、Hea

c++ - WINAPI CreateThread 并不总是运行线程

我正在尝试使用WindowsCreateThreadAPI创建和执行线程。我看到运行该程序会产生不确定的行为。我从程序的输出中看到,线程方法“my”有时会被执行,有时不会。这可能是什么原因?该程序非常简单,如下所示。还有应该用什么初始化dwThreadID。它应该是0还是任何整数值?PS:在VisualStudio中编译。#include"stdafx.h"#include#includeusingnamespacestd;//DWORDWINAPIDWORDWINAPImy(LPVOIDlpParam){for(inti=0;i 最佳答案

c++ - 为什么在我分配该类的两个对象时调用我的构造函数?

我很困惑,如果这是显而易见的,我很抱歉。以下是我错了吗:structMyStruct{MyStruct(){};MyStruct(MyStruct*arg){};}MyStruct(MyStruct*参数){};构造函数是否将一个指向MyStruct的指针作为参数?因为我有一个问题,当我这样做时,这个构造函数(我认为是)被调用了:intmain(){MyStructobj;MyStruct*objPtr;obj=objPtr;return0;}当将obj分配给objPtr时,我希望编译器会提示,但它没有,而是调用MyStruct(MyStruct*arg);我认为这是一个采用指针参数的

windows - 卸载 Visual Studio 2015 Community - 禁用卸载按钮?

尝试在Windows10台式计算机上删除VisualStudio2015社区版(因为我现在使用的是2017)。但是,当我转到“应用程序和功能”时,卸载按钮被禁用了!在不破坏2017的情况下如何删除VS2015社区?不幸的是,我继承了这个工作站,似乎没有人知道原始安装盘(如果有的话)在哪里!我还发现此工作站上存在VisualStudio2010和2013。我怀疑只是下载并安装了VS2015;因此本身没有原始磁盘。如有任何建议,我们将不胜感激。 最佳答案 按修改,它会给出卸载选项。 关于wi

c++ - 丢失 DLL 的一般方法

我想每个人都时不时遇到丢失dll的问题。我想要获得的是查找和安装dll的“推荐”方法。使用depends.exe很容易找出缺少的dll。 最佳答案 不要再使用depends.exe,它跟不上Windows核心和并行缓存等部署策略的发展。试图修复它给出的警告实际上会使您的机器变得非常糟糕。仅在程序实际无法启动时将其用作提示。 关于c++-丢失DLL的一般方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

c++ - 只有逐步调试,代码才能正常运行

我正在制作一个网络服务器,但我遇到了一些非常奇怪的问题。我的服务器运行正常昨天当我关闭我的笔记本电脑时,但今天它只发送httpheader(我没有改变任何东西)当用户请求文件时,如果我使用以下代码发送给他们,它会完美地工作:while((n=fread(data,1,sizeof(data),file))>0)发送(ts,数据,n,0);但如果我将其更改为此,它只会发送文件的~2%。这不是一个随机数,它实际上只发送了大约2%的文件。while((n=fread(data,1,sizeof(data),file))>0)web.Send(data);intWEB::Send(string