Tag: visual c ++ 2010

printf 64位类型说明符问题

我在msdev 2010中看到了__int64类型的一些奇怪行为。有谁能告诉我发生了什么? 我想这里有2个问题,首先是如何显示64位整数,其次是行为 – 即为什么它看起来像__int64实际上是32位int … #include int main() { int vl_idx; unsigned __int64 vl_64; unsigned __int64 vl_64_test; for (vl_idx = 0; vl_idx < 64; vl_idx++) { vl_64 = 1 << vl_idx; printf ("vl_64 (%d) = %I64u\n", vl_idx, vl_64); printf ("vl_64 (%d) = %llu\n", vl_idx, vl_64); printf ("vl_64 (%d) = %lu\n", vl_idx, vl_64); } vl_64_test […]

调试Visual Studio 2010 DLL项目

我正在尝试从Visual Studio 2010调试C / C ++本机DLL项目。我正在尝试按照这些说明操作: http : //msdn.microsoft.com/en-us/library/c91k1xcf(v = VS.100 )的.aspx 我想使用内置的调试器,并能够像常规的.exe项目一样执行代码,检查结构等。 上面的页面上的说明描述了配置属性下的调试类别,我没看到。 http://img707.imageshack.us/img707/4402/lalasz.png 只需按F5进行调试就会出现以下错误: 无法启动程序’C:\ Users ……. Test.dll’ 我已经多次将调试器用于常规.exe项目,并且在这台计算机上运行正常。 我不确定我现在是否只是错过了一些非常明显的东西。 编辑:由于我从一开始就没有说清楚,我希望Visual Studio将我的DLL加载到存根过程中,然后让我从那里调试源代码,就像OllyDbg一样。 我的DLL不是包含要导出和调用的一堆函数的类型。 相反,它在DllMain中执行切换/大小写,并且在DLL_PROCESS_ATTACH上将生成一个新线程。 因此,我需要Visual Studio才能将我的DLL加载到存根可执行文件中,并允许我设置断点等。

为什么VS2010在语法正确时会出现语法错误?

我遇到了VS2010(和VS2008)的问题,给出了一个很好的语法错误列表。 但是,语法确实是正确的。 这是一个小例子; 我在.h文件中有以下代码块 // Prototype Declarations LIST* createList (int (*compare) (void*, void*)); LIST* destroyList (LIST* plist); int addNode (LIST* pList, void* dataInPtr); bool removeNode (LIST* pList, void* keyPtr, void** dataOutPtr); bool searchList (LIST* pList, void* pArgu, void** pDataOut); bool retrieveNode (LIST* pList, void* pArgu, void** dataOutPtr); bool traverse (LIST* pList, int fromWhere, void** dataOutPtr); […]