Articles of visual c ++

在Windows 8 Media Foundation转换中在IMFMediaBuffer上绘制文本

如何在IMFMediaBuffer对象上绘制文本,并将其写出到另一个IMFMediaBuffer对象? 上下文是我正在build立一个MFT,最初我尝试使用Direct2D和Direct3D11来实现这一点,但无济于事。

Windowsregistryredirect是一个“坏事”?

我有我自己的安装程序,我用它来安装我写的几个应用程序。 我一直在更新这个程序,以避免应用程序的数据文件更新到用户的VirtualStore,因为我读这是一个“坏事”。 我这样做是通过将程序和常用数据文件分别存储在正确的位置,而不是像XP中那样将所有内容都保存在程序文件中。 我现在也在使用SHGetFolderPath(是的,它已被弃用,但我仍然需要支持我的XP用户),以获取已知的文件夹,而不是拖网registry,这是另一个“坏事”(我读)。 接下来我要做的是重写安装程序代码,避免在向HKLM写入内容时将registryredirect到Wow6432Node,因为我认为这是另一件“坏事”。 然而,虽然我可以把应用程序特定的东西(如安装文件夹,如果用户决定安装在默认以外),杀手是需要将卸载信息放在HKLM \ Software \ Microsoft \ Windows \ CURRENTVERSION \卸载。 对于在64位系统上运行的32位的东西,这被redirect到Wow6432Node。 我不觉得有什么办法 – 事实上是可能的吗?

如何编辑MFC列表框中的单元格?

我有一个CListCtrl控件有2列和任意数量的行。 我希望用户能够点击(或者双击)“单元格”,并能够编辑其中的文本。 我的意思是,我希望能够点击和编辑任何地方,说“testing”通过点击文本,使其可编辑。 我应该怎么做呢? 我想我应该使用鼠标点击事件,但如何使单元格可编辑?

客户在使用我们的应用程序时得到R6002运行时错误

我们有一个使用Visual C ++ 2005构build的应用程序,有一个客户报告说他得到了这个运行时错误: Microsoft Visual C++ Runtime Library Runtime Error! Program: [path to our application] R6002 – floating point support not loaded 根据微软( 在这个页面上 ),可能的原因是: 该机器没有FPU(不是这种情况:客户有一个Intel Core 2 Duo CPU,自从486SX以来我没有看到没有FPU的机器) printf或scanf与浮点格式规范一起使用,但程序中没有FPvariables(我们的应用程序包含FPvariables,但是我确信我们从不使用printf或scanf与FP格式) 与FORTRAN(在我们的应用程序中没有FORTRAN代码) 而且,在使用我们的应用程序时(特别是在他们select要处理的文件之后),而不是在应用程序启动时发生错误。 我意识到这是一个远射,但是有没有人在任何地方见过这样的事情? 谷歌是相当无益的(有很多没有支持的声称,这是一种病毒感染的症状,但除此之外很less)。 任何build议感激地收到:-)

如何在Windows上构buildgnu`libiconv`?

我想在Windows上构build一个静态库(* .LIB文件) GNU libiconv ,与Visual C ++中的其他库一起使用。 我正在使用的其他库是使用“multithreadingDLL”(/ MD)运行时选项构build的。 所以,我需要使用相同的选项来构buildlibiconv。 问题是libiconv使用GNU构build系统,我想用/ MD选项编译。 你可以在这里看到libiconv的源代码结构: http ://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv Zlatkovic先生维护libxml2的GNU libiconv的Windows端口 你可以在这里看到他们: ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip ftp://xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip 我不能使用他的端口。 我需要从最新版本的libiconv-1.13开始构build。 我不知道这个人是如何移植它的? 有人可以告诉我如何从这个build立* .lib并使用MSVC编译它? 编辑: 其实,我需要build立几个相同的设置GNU库。 所以,如果我得到一个库的解决scheme。 我可以为所有其他人做同样的事情。

SetStdHandle对cout / printf没有影响

标题说明了一切。 当我运行下面的代码: HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE hFile = CreateFile(TEXT("Foo.txt"), GENERIC_WRITE, FILE_READ_ACCESS | FILE_WRITE_ACCESS, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); SetStdHandle(STD_OUTPUT_HANDLE, hFile); std::cout << "Hello, "; printf("world!\n"); WriteFile(GetStdHandle(STD_OUTPUT_HANDLE), "Hello, world!\n", 13, NULL, NULL); SetStdHandle(STD_OUTPUT_HANDLE, hOut); CloseHandle(hFile); 结果是, Hello, world! 由于对cout和printf的调用以及Hello, world!而被写入控制台Hello, world! 由于对WriteFile的调用,也被写入文件Foo.txt 。 我的假设是,当一切都在开始初始化时,由GetStdHandle返回的HANDLE被caching并重用于cout和printf 。 这是完全合理的,正是我想要的,因为我认为GetStdHandle需要调用操作系统(可能会很长!)。 麻烦的是我想覆盖这个行为,如果可能的话,用应用程序的标准句柄“同步”cout和printf。 在提出任何替代scheme之前,让我准确地描述一下我正在做的事情(是的,我知道为此可以使用freopen )。 我需要做的是在修改之前将当前的标准输出句柄“保存”在一个类似于堆栈的数据结构上,以便能够恢复以前的输出句柄。 任何短小的情况都是不可接受的(即我无法恢复到CONOUT$等)。 这需要有recursion的能力。 也就是说,以下内容应该如你所期望的那样工作: std::cout << "A1" […]

禁止自动播放

我需要禁止海量存储设备的自动播放。 这需要通过在后台运行的服务/守护程序来编程实现。 我知道这可以通过打开一个窗口并处理窗口发送的“queryCancelAutoPlay”消息的应用程序来完成。 这可以做到没有GUI.I具有guid / pid / vid为自动播放需要被禁用的设备。

无法安装Windows 7 SDK(需要已安装.NET Framework 4)

我试图在Windows 8和Windows 10机器上安装Windows 7 SDK,并得到这个错误: 如果我点击确定,我不能安装我需要的VC ++编译器,因为它们被禁用=( 在这个错误之后,我尝试安装.NET 4,并得到这个错误: 如何解决它? 有时候我可以在Windows 8上安装这个SDK,但是大多数情况下我都看到这些消息。

串口C ++问题

我有一个问题连接到任何串行端口(想与Arduino交换)在visual studio上使用c + +。 我正在使用Arduino操场上给出的SerialClass ,但无法打开我的端口的句柄。 它会在每次尝试中抛出ERROR_FILE_NOT_FOUND 我一直在testing许多其他注意端口的方法: "COM1" "COM1:" "\\.\COM1" 但没有任何工作。 该系统上的端口是可用的,使用Putty或Arduino IDE工作正常。 另外它不会被其他进程阻塞。 我使用Windows 7 x64,但项目是Win32。 这个类是用 serialPort = new Serial((char*)port); 错误string显示正确的端口名称。 我做错了什么? 文件打开也不起作用。

Windows API将显示正在运行的进程

我想创build一个像小型任务pipe理器的工具。 我想显示所有正在运行的进程,cpu和内存使用情况。 有人可以告诉我相关的API,我可以用这个。 任何链接到相关的网页将不胜感激。 (我想转储的所有运行进程,CPU和内存的统计信息。)在此先感谢。