Articles of visual c ++

使用Media Foundation获取Mp3的总持续时间,以秒(或毫秒)为单位

我正在为Windows 8.1和wp 8.1开发一个通用应用程序 我写了一个小的c + +解码MP3文件的源,现在我想find一种方法来获得总时间长度之前,我使用媒体基础API解码文件。 谢谢

在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。 我可以为所有其他人做同样的事情。

在.NET中获取目录数据的最快方法

我正在使用文件同步服务来同步不同机器上的两个文件夹之间的文件。 我需要find一个非常快速的方式来枚举一个目录,并从中获取以下信息: 该目录中所有文件path和子目录path的数据结构或结构,包括每个文件或子目录的最后写入时间。 对于当前目录下任何级别的每个子目录,与上述相同。 到目前为止,我已经想出了这个: static void Main(string[] args) { List<Tuple<string, DateTime>> files = new List<Tuple<string, DateTime>>(); List<Tuple<string, DateTime>> directories = new List<Tuple<string, DateTime>>(); Stopwatch watch = new Stopwatch(); while (true) { watch.Start(); while (!CheckFolderRecursiveSingleThreaded("C:\\", out files, out directories)) { // You can assume for all intents and purposes that drive C does exist and […]

WinAPI函数LoadLibrary()在执行错误期间导致函数失败

以下代码使用LoadLibrary()在运行时加载dll。 boolean Load_Internals_dll() { boolean result = true; //LOG_INIT; HINSTANCE hApexRLIO = LoadLibrary(L"APEX_RLIO_Internals.dll"); printf("Checking getlasterror after loadlibrary:\n",GetLastError()); if(NULL == hApexRLIO) { result = false; printf("[ERR]: Unable to load dll\n"); LOG_PRINT(" [ERR]: Unable to load dll.\n" ); } result = InitRSIDComm_Lib_Func(); //LOG_EXIT; return result; } 加载DLL后,发现句柄hApexRLIO不为空,但函数GetLastError()返回系统错误代码1627(函数在执行期间失败)。 这个错误可能是什么原因造成的? 这个错误代码在网上没有太多的文档,VC ++十加仑的头请帮我解决这个问题。

OpenThread()返回NULL Win32

我觉得这个问题有一个明显的答案,但这个问题一直困扰着我。 我在C ++中有一些遗留代码,当它尝试调用OpenThread()时会中断。 我在Visual C ++ 2008 Express Edition中运行它。 程序首先获取调用线程的ThreadID,并尝试打开它,如下所示: ThreadId threadId = IsThreaded()? thread_id::: GetCurrentThreadId(); HANDLE threadHandle = OpenThread(THREAD_ALL_ACCESS,FALSE,threadId); 现在这是我不明白的:如果线程ID是当前线程的ID,是不是已经打开? 那可能是为什么它返回NULL? 对于任何反馈,我们都表示感谢。

使用MSVC2010使用/ MT编译静态QT库

我正在试图静态构buildQT库和/ MT(运行时静态链接)。 我按照下面的步骤进行:1.在qmake.conf文件中,在release和debugconfiguration中修改/ MD到/ MT 2.运行configure命令,如下所示:configure -static -opensource 3.运行nmake 问题是nmake在运行几秒后失败。 这是最后的输出: [……….] qjson.cpp qjsondocument.cpp qjsonobject.cpp qjsonarray.cpp qjsonvalue.cpp qjsonparser.cpp qjsonwriter.cpp Generating Code… cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MT -W3 -w34100 -w34189 -GR -DUNICO DE -DWIN32 -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_COD ECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT _NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT _NO_TRANSLATION -DQT_QMAKE_LOCATION=\"F:/utils/Qt/5.0.0/Src/qtbase/bin/qmake\" – DQT_NO_CAST_FROM_ASCII -DQT_BUILD_BOOTSTRAP_LIB […]