Articles of 视觉工作室

64位窗口 – 我需要使用IMAGE_NT_HEADERS64?

我试图读取Windows 64环境中的一些进程的PE头,因为我的代码只是读取IMAGE_NT_HEADERS结构的32位和64位可执行文件,我想知道:我需要写一些像 if executable is 64 bit use IMAGE_NT_HEADERS64 else use IMAGE_NT_HEADERS ? 我的代码似乎只使用IMAGE_NT_HEADERS 64和32位进程工作,我错过了什么?

CBitmap :: LoadBitmap()拒绝加载资源

我正在处理一个包含位图资源的DLL。 我通过Visual Studio中的资源视图导入了该位图。 该DLL还会导出一个具有试图加载位图的函数的类: BOOL CMyExportedClass::Create(CWnd* pParentWnd /*= NULL*/) { if (!m_bitmap.LoadBitmap(IDB_BITMAP1)) return FALSE; // … } 从MFC应用程序我加载DLL。 在应用程序InitInstance()函数内部,我调用一个最终调用CMyExportedClass::Create()的DLL的导出函数。 但是, LoadBitmap()总是返回0 ,根据文档指出内存不足(不是这种情况)或资源不存在。 位图文件是我的DLL项目的一部分, IDB_BITMAP1在.rc文件中以及在resource.h中定义 : MyDLL.rc: IDB_BITMAP1 BITMAP "res\\mybitmap.bmp" RESOURCE.H: #define IDB_BITMAP1 1034 我已经检查过,ID只定义了一次。 FWIW:在调用LoadBitmap() ,DLL InitiInstance()函数已经成功返回。 LoadBitmap()拒绝加载资源的原因是什么?我该如何解决这个问题? 编辑: 我可以成功加载资源,而不是m_bitmap.LoadBitmap(IDB_BITMAP1)我做到以下几点: HBITMAP hBitmap = (HBITMAP)LoadImage(hCurrentModule, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, 0); if(hBitmap) m_bitmap.Attach((HBITMAP)hBitmap); 那么CBitmap::LoadBitmap()和LoadImage()函数在这里有什么LoadImage()呢?

什么是WINAPI_FAMILY_ONECORE_APP?

我正在通过GitHub微软的OpenSSL端口。 一个提交引起了我的注意,那就是添加Win10通用平台支持 。 在提交中,出现了名为WINAPI_FAMILY_ONECORE_APP的分区。 不过,在search时我并没有find太多的东西。 英文有两首,中文有二十二首(见下)。 以下Visual Studio Tools for Windows 10 Preview中的新function提供了一些没有任何解释的准点符号: 新的API分区WINAPI_FAMILY_ONECORE_APP ARM 64 通用CRT … 我有两个问题: 什么是WINAPI_FAMILY_ONECORE_APP ,以及如何使用它? 我可以使用WINAPI_FAMILY_ONECORE_APP 检测Windows 10小工具上的Aarch64 / ARM64吗? 这里是微软在OpenSSL中的使用( 从ssl/dtls1.h ; C ++注释被移到了define的可读性之上): // winsock.h not present in WindowsPhone/WindowsStore, defining the expected struct here #if defined(WINAPI_FAMILY) && ( WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP || WINAPI_FAMILY==WINAPI_FAMILY_PC_APP || WINAPI_FAMILY==WINAPI_FAMILY_ONECORE_APP) struct next_timeout { long […]

用Visual Studio 2010构buildLinux内核

有没有人有关于如何使用Visual Studio 2010构buildLinux内核的分步说明? 我试图直接寻找这个问题的解决scheme,但没有喜悦。 我已经能够发现的一些事情: Linux内核是使用GNU C编译器构build的,因此先决条件是构build一个Windows GNU C编译器,以便编译一个Linux GNU C编译器。 我知道GNU C编译器的源代码可以从GNU.org获得,但是有没有人使用Microsoft Visual Studio 2010 C / C ++编译器为Windows构build了GNU C编译器? 一旦制作了Linux GNU C编译器,我就可以使用它来构buildLinux内核以及任何其他基于Linux的软件来获得Linux系统。 这是我从www.linuxfromscratch.org得到的 你们中的一些人可能想知道为什么我不简单地为此下载一个预编译的GNU C编译器? 我工作的环境与任何外部networking完全分离。 即使运动鞋网是不允许的。 每一个软件都必须从源代码编译,这些源代码必须手工input。 这是低效的,但也是偏执安全的。 (不要问,我不是老板…) 无论如何,我们正在考虑引入内部的Linux机器,但是我们从Windows 7和Visual Studio 2010开始。有人可以告诉我们如何将所有重新input的源代码转换成可用的GNU C编译器视窗? 还为Linux? 感谢您的任何build议!

Linux上的哪些C ++ IDE与Visual Studio相比具有“智能感知”或​​更好?

pipe道中有一些基于Linux的C ++项目。 我应该select什么样的IDE,它与某种纯粹的Visual Studio(也就是说,没有Visual Assist类固化)相比具有某种“智能感”。 (请注意,我没有使用“和…一样好或者更好”的字眼,我认为Visual Studio C ++中的intellisense一切都很好,因此与“Visual Assist”的评论相同)。

C ++代码分析器

任何人都可以推荐一个好的C ++代码分析器? 我遇到了shiny – 有什么好处? http://sourceforge.net/projects/shinyprofiler/

LNK1106与大二进制资源

我有一个相当庞大的.dat文件(896MB)作为我的项目中的一个BIN资源。 现在我得到一个LNK1106链接错误(“致命错误LNK1106:无效的文件或磁盘满:无法寻求到0x382A3920”)。我在Windows XP下使用Visual Studio 2005,并试图在一个4GB的RAM机器高虚拟内存设置和很多的磁盘空间。 我已经尝试了一些不同的优化标志,但无济于事。 有人有线索吗? 编辑:我已经缩小到编译资源的特定大小。 如果.res文件是544078588字节(约518.9MB)或更大,则会发生错误。 如果它更小,它工作得很好。 仍然没有解决scheme,但…

Visual Studio 2015 C ++应用程序需要客户端客户端上的api-ms-win-crt-runtime-l1-1-0.dll

我已经使用Visual Studio 2015社区版build立了一个应用程序。 当我的一些用户试图运行它,他们收到以下错误: 程序无法启动,因为您的计算机缺lessapi-ms-win-crt-runtime-l1-1-0.dll。 尝试重新安装程序来解决这个问题。 显然这是通过在Windows中安装通用C运行时更新 (KB2999226)来解决的。 我可以在安装脚本中检查修补程序,但是我发现这样做的所有方法要么太慢,要么不可靠 。 我怎样才能防止这种错误发生? 我可以更改我的解决scheme,以便我不需要这种依赖性? 我是否连接了一些我可以删除的东西? 我可以重新分配与我的应用程序的修补程序? 编辑:在项目属性中,“目标平台版本”是8.1,“平台工具集”是“Visual Studio 2015(v140)”,如果有帮助的话。 编辑2:我已经试过将所有的通用C运行时库DLL复制到应用程序目录,因为微软现在允许(但不build议)本地模式安装的UCRT 。 C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64有41个文件,而api-ms-win-crt-runtime-l1-1-0.dll就是其中之一。 但是,现在运行该应用程序导致此错误: 应用程序无法正确启动(0xc0000142)。 单击确定closures该应用程序。 我试过用MSVS 2015debugging应用程序,但没有得到任何好处。 我在Dependency Walker中打开了可执行文件,看起来我错过了这个答案中列出的类似DLL ,它说Dependency Walker是旧的,这是一个红色的鲱鱼。 我尝试通过进程监视器(procmon)运行应用程序,没有什么不寻常的。 应用程序简单地调用WerFault.exe上的“进程创build”,然后“线程退出”。 编辑3:我启用加载程序捕捉可执行文件,并得到这个从CDB运行时,如果有帮助: … 00c0:1200 @ 02106250 – LdrpFindOrMapDependency – RETURN: Status: 0x00000000 00c0:1200 @ 02106250 – LdrpFindOrMapDependency – ENTER: DLL name: api-ms-win-core-sysinfo-l1-2-1.dll. […]

Qwindows.dll从来没有find

当我在其他机器上运行我的应用程序时,如果我重命名Qt目录,我得到“此应用程序无法启动,因为它无法find或加载Qt平台插件”窗口“重新安装应用程序可能会解决此问题。 这是包含应用程序的文件夹的布局: app.exe icudt53.dll icuin53.dll icuuc53.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets.dll msvcp110.dll platforms/qwindows.dll 有没有可能强制searchqwindows.dll目录而不是QT目录我的应用程序的目录?

在Windows应用程序中编译时embeddedSVN修订版本号

我希望我的.exe能够访问我的svn版本的资源string。 我可以手工input,但我更喜欢在编译时自动embedded。 Visual Studio 2008中是否有这样的function?