Articles of visual studio 2010

为什么某些程序在使用debugging器的时候工作,而在运行正常的debugging执行时却不能?

我曾经多次用Visual Studio编写一个程序,并且在某个地方的某个地方。 当然,我的第一个想法是在程序的早期设置一个断点,然后慢慢地逐行执行代码,一行一行,直到出现错误。 但是经常我发现在debugging器中缓慢地执行代码时,一切正常。 然而,当我只是试图运行没有断点的程序出了问题。 为什么会这样呢? 逐行执行代码与实际不同,只是在dubug模式下运行程序? (我不是在谈论debuggingvs发布,我正在谈论debuggingvs逐行debugging)

我的debugging器似乎运行不同的代码比我build立

我在Windows 7上使用Visual Studio 2010,用C ++编写。 在我的程序中,我有一个包含我在程序中经常使用的一堆函数的.dll文件。 最近我在修改.dll文件时遇到了一些麻烦。 每当我改变我的DLL中定义的函数时,程序生成并运行时,这些更改似乎不起作用。 也就是说,我相信我的DLL每次成功构build(或重build)我的解决scheme都不正确更新。 如果我试图在.cpp文件中的任何函数中设置一个断点(从用户代替一个DLL中隐藏的那个函数),visual studio会告诉我这些代码将不会被执行,并且不能设置断点那里。 不过,今天早些时候我可以在那里设置一个断点。 此外,我的function之一打印“帧接收”的Visual Studio中的debugging输出。 这仍然在发生,所以这个function的某些版本仍然有效。 所以我想连续10次打印“Frame Received”,看看我的修改是否真正生效。 奇怪的是,即使在build立和清理/重build之后,程序仍然只写一次“接收帧”,就好像它忽略了我的改变。 我不确定是什么原因造成的,但正如我所说的那样,它只是显示我的.dll没有被更新和/或Visual Studio使用.dll的旧版本,而不是最新的版本。 无论哪种方式,我不知道如何解决这个问题。 有任何想法吗? 编辑:我忘记提及,早些时候,在debugging时,我试图进入一个function,我无法放置断点,我被击中这个错误信息:

VS2010如何使输出显示计数器build成的项目

我有很多项目的解决scheme,希望看到编译进度。 正如你在编译时可能知道的那样,我们在输出窗口中只能看到那些string(即使它是广泛的) … _CopyAppConfigFile: Copying file from "app.config" to "bin\Debug\Bububu.exe.config". CopyFilesToOutputDirectory: Copying file from "obj\Debug\Bububu.exe" to "bin\Debug\Bububu.exe". Bububu -> C:\Dev\Bububu\bin\Debug\Bububu.exe Copying file from "obj\Debug\Bububu.pdb" to "bin\Debug\Bububu.pdb". build立成功。 那么,我想看到像“构build13/26成功…”这是可能的吗?

对应用程序推荐的解决scheme,以允许应用程序具有可由同一机器的多个用户共享的设置文件

我目前正在一个项目中,我的应用程序生成一些设置文件(在programfiles(x86)文件夹),进一步由不同的应用程序使用。 现在,我甚至希望我的软件的非pipe理用户使用这个在程序文件(x86)文件夹中生成设置文件的function。 我正在使用C ++来创build我的应用程序。 那么,我们是否有c ++中的function,即使非pipe理员也可以在ProgramFiles(x86)文件夹中创build一个设置文件。 微软如何处理这种情况? 有人可以请指导我一个很好的解决这个问题。 提前致谢。

C#JSON对象不会反序列化

所以我已经能够获得一些JSON对象,但是这个对象比较复杂。 我试图从Reddit获得意见。 这里是我使用的方法: public async Task<List<string>> GetComments(string currentSubreddit, string topicID) { string commentUrl = "http://www.reddit.com/r/" + currentSubreddit + "/comments/" + topicID + "/.json"; List<Comments> commentList = new List<Comments>(); string jsonText = await wc.GetJsonText(commentUrl); Comments.RootObject deserializeObject = Newtonsoft.Json.JsonConvert.DeserializeObject<Comments.RootObject>(jsonText); List<string> commentListTest = new List<string>(); //List<string> commentListTest = deserializeObject.data.children[0].data.children; return commentListTest; } 这是GetJsonText方法: public async Task<string> GetJsonText(string url) […]

为什么获得的MachineGuid看起来不像一个GUID,但像韩国人?

我创build了一个简单的函数: std::wstring GetRegKey(const std::string& location, const std::string& name){ const int valueLength = 10240; auto platformFlag = KEY_WOW64_64KEY; HKEY key; TCHAR value[valueLength]; DWORD bufLen = valueLength*sizeof(TCHAR); long ret; ret = RegOpenKeyExA(HKEY_LOCAL_MACHINE, location.c_str(), 0, KEY_READ | platformFlag, &key); if( ret != ERROR_SUCCESS ){ return std::wstring(); } ret = RegQueryValueExA(key, name.c_str(), NULL, NULL, (LPBYTE) value, &bufLen); RegCloseKey(key); if […]

我怎样才能找出哪个库包括libcmt?

我试图链接一个Windows的可执行文件,依赖于几个静态库(我已经build立了一些,其中一些我没有)。 当我做链接时,我遇到了一群错误,如: LIBCMT.lib(mlock.obj) : error LNK2005: _unlock already defined in MSVCRT.lib(MSVCR100.dll) 这是经典/ MD与/ MT问题(无论C运行时是静态还是dynamic链接)。 我首先尝试了简单的解决scheme,添加链接器标志 /nodefaultlib:libcmt /nodefaultlib:libcpmt 但是这只是给了不同的错误: msvcprt.lib(MSVCP100.dll) : error LNK2005: "public: __cdecl std::_Locinfo::~_Locinfo(void)" (??1_Locinfo@std@@QEAA@XZ) already defined in gtest.lib(gtest-all.cc.obj) gtest.lib(gtest-all.cc.obj) : error LNK2001: unresolved external symbol "private: static int std::locale::id::_Id_cnt" (?_Id_cnt@id@locale@std@@0HA) 我已经浏览了我正在build立的图书馆,并且据我所知,我正在把它们全部build成/ MD。 我说“据我可以告诉”,因为其中一些是第三方库自带的makefiles,所以我没有完全控制生成过程.. 我不认为“依赖”在图书馆工作(只有EXE和DLL),是否有一个工具,让我看看我连接的各种图书馆,看看哪一个正在引入libcmt当我想成为使用msvcrt来代替?

在Windows C ++下的链接库中的静态初始化

我有一个configuration有一个库和一个控制台应用程序。 他们现在是相当的准系统。 我正在使用Visual Studio 2010,库和控制台应用程序都静态链接到运行时。 控制台应用程序也链接到库。 在库中,我可以将这些代码添加到源文件中: class MyClass { public: MyClass() { printf("MyClass loaded\n"); } }; class MyClass2 { public: static MyClass my_class; }; MyClass MyClass2::my_class; 现在,我的理解是my_class应该在main()之前的某个时候初始化。 然而,它从来没有发生(因为我没有得到打印的消息)。 但是,我可以使用两种不同的方法来初始化它: 将代码放在控制台应用程序中。 这样做会调用printf()语句。 修改MyClass2以包含从库中的全局variables调用的静态函数,并在控制台应用程序的main()中使用该全局variables。 上面#2的例子: 库文件: class MyClass { public: MyClass() { printf("MyClass loaded\n"); } }; class MyClass2 { public: static MyClass my_class; static int Ping(); […]

依赖Walker父importfunction列表显示来自不同的lib的function

我想在我的项目中包含一个外部库(.lib指向一个.dll)。 我build立在使用QT的窗口(它似乎是使用msvc2010作为编译器),并在我的.pro文件中有: LIBS += <path>/<libraryName>.lib 。 在输出可执行文件的目录中有相应的.dll文件,因此可以find它。 当程序运行时,我从QT获得以下内容: Starting (program name)… The program has unexpectedly finished. (program name) exited with code -1073741515 在它周围search似乎这种types的错误可能来自.dll文件有所不同,以某种方式比你所期望的,这似乎是至less部分在这里的问题。 当我用dependency walker打开我的程序时,我可以看到我的.dll文件和其中的函数看起来是正确的,据我所知。 然而,在父importfunction窗格中的函数不同意或看起来不正确(我想为什么我得到我的错误)。 这些函数定义与我使用的另一个外部库的函数完全匹配。 对我来说,这表明以某种方式.lib文件是不正确的,但是我已经使用这对.lib / .dll文件之前在不同的程序(不是在QT内置),他们工作正常。 此外,我已经尝试从我的.pro文件中删除对.lib文件的引用,并且正确的函数调用了抱怨(从find的.dll文件中定义的这个库中的库)。 .lib文件看起来完全如我所料,也使用Dumpbin.exe / EXPORTS查看其内容。 任何关于什么依赖沃克试图告诉我或我现在应该尝试什么的想法是真棒。 编辑2/8:我已经构build了一个最小的例子 。 它停止在相同的步行器,而不是显示从另一个库函数显示没有预期的function相同的错误。

运行Windows卸载程序时closures应用程序

我有一个C#应用程序。 所有工作正常,除了这个: 当我从添加/删除程序中卸载应用程序时,如果应用程序未closures,它将在卸载后保持打开状态。 对于无法读取隐含问题的人…“如何在卸载应用程序时closures?”。 如果你需要任何细节只是问。