Tag: visual studio 2008

使用`#ifdef`时,Visual Studio错误地标记非活动代码块

我的项目有很多#ifdefs 。 这些#ifdef使用的宏通常使用’/D’选项通过命令行传递,以获得不同的构建配置。 Visual Studio错误地假设未定义这些宏并使这些#ifdef存在的代码块变灰。 问题不在于语法高亮 – 我可以将灰色代码转换为选项中的彩色代码; 主要问题是我无法转到#ifdef存在的任何函数的函数定义。 我尝试阅读Visual Studio 提示文件,但这对我不起作用。 任何人都可以帮我解决这个问题吗? 我正在使用Visual Studio 2008。

C ++ time_t问题

我在C ++中使用日期管理遇到了麻烦(VS 2008)。 根据MSDN规范 , time_t代表: 自1970年1月1日0:00 UTC以来的秒数 因此,我写了这段代码: #include #include time_t GetDate(int year, int month, int day, int hour, int min, int sec) { time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = gmtime ( &rawtime ); timeinfo->tm_year = year – 1900; timeinfo->tm_mon = month – 1; timeinfo->tm_mday = day; timeinfo->tm_hour […]

无法在C中声明大小为400000的数组

我想做以下事情: #include #include #define N 400000 void main() { int a[N]; } 我得到一个stackoverflowexception。 我的电脑有6GB的主内存,所以我无法全部使用它。 我该如何解决这个问题? 我在Windows 7上使用VS 2008并在C中编码。

为什么必须在运算符重载中提供关键字const

只是好奇为什么一个param必须是一个const操作重载 CVector& CVector::operator= (const CVector& param) { x=param.x; y=param.y; return *this; } 难道你不能轻易做到这样的事吗? CVector& CVector::operator= (CVector& param) //no const { x=param.x; y=param.y; return *this; } 当某些东西变成const时,它对于应用程序生命的其余部分是不可改变的? 这在操作重载方面有何不同?

在项目属性中找不到C / C ++

我正在按照教程进行操作,其中一个步骤是转到我的项目属性并单击c / c ++并添加“Additional Include Directories”属性的路径。 我正在使用visual C ++ Express Edition 2008.该教程使用相同的东西。 有没有得到这个或另类? 这是我的屏幕 这是教程屏幕

尝试一起编译多个CUDA文件时链接错误LNK2005

我有一个工作正常的CUDA程序,但目前所有程序都写在一个文件中。 我想将这个大文件拆分成几个较小的文件,以便更容易维护和导航。 新结构是: foo.cuh foo.cu bar.cuh bar.cu main.cu .cuh头文件包含结构和函数原型, .cu文件包含函数定义(像往常一样)。 主文件包括bar.cuh , bar.cu包括foo.cuh 。 所有.cu文件都包含cutil_inline.h,以便能够使用CUDA函数。 因此: // main.cu #include “bar.cuh” #include int main() […] // bar.cu #include “bar.cuh” #include “foo.cuh” #include […] // foo.cu #include “foo.cuh” #include […] 问题是当我用这个新结构编译我的Visual Studio 2008项目时,我遇到了大量的链接错误: error LNK2005: “void __cdecl __cutilBankChecker(unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int,char *,int,char *,int)” (?__cutilBankChecker@@YAXIIIIIIPADH0H@Z) […]

多个LNK2005错误

我正在编译项目并出现以下错误: LIBCMTD.lib(_file.obj) : error LNK2005: ___iob_func already defined in MSVCRTD.lib(MSVCR90D.dll) LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount already defined in MSVCRTD.lib(MSVCR90D.dll) LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit already defined in MSVCRTD.lib(MSVCR90D.dll) LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit already defined in MSVCRTD.lib(MSVCR90D.dll) LIBCMTD.lib(crt0dat.obj) : error LNK2005: __cexit already defined in MSVCRTD.lib(MSVCR90D.dll) LIBCMTD.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in MSVCRTD.lib(MSVCR90D.dll) […]

我可以在Visual Studio中的单个项目中混合使用C ++和C吗?

我在VS2008中有一个Win32 DLL项目,它是用少数几个C模块编写的。 因为我也希望能够在VS2008外部构建,而不依赖于VS2008,所以我制作了一个自定义makefile,它可以完成所有构建和链接步骤。 所有这一切都设置得很好。 现在我想为这个DLL添加几个C ++模块。 我修改了自定义makefile以将.cpp模块编译为C ++,将.c模块编译为常规C(/ Tc)。 这一切都有效。 它把所有东西连在一起,没问题。 我可以配置VS2008项目吗? 我可以在同一个VS2008项目中混合使用C ++和C吗? 或者我需要一个自定义构建步骤吗? 谢谢。 回答 我将VS2008项目设置为C编译。我需要将其更改为Compile As“Default”。 右键单击项目,选择Properties,然后选择……: 替代文字http://sofzh.miximages.com/c%2B%2B/qqsd8g.png 谢谢,帕维尔。

C ReadProcessMemory – 如何检查与进程关联的内存区域

我想读取与特定进程相关的所有内存。 我知道ReadProcessMemory,但由于我没有使用它的经验,我担心我会得到一堆垃圾(垃圾……)。 a)我如何计算,从基本指针到结束)我可以阅读的总区域b)迭代这个内存区域并打印它的最佳方法/最安全c)如何打印给定我不知道它将包含哪些值,以便我可以查看它? 我还希望能够在输出中包含内存中每个数据的实际位置。 谢谢R.

错误C2057:预期的常量表达式

if(stat(“seek.pc.db”, &files) ==0 ) sizes=files.st_size; sizes=sizes/sizeof(int); int s[sizes]; 我在Visual Studio 2008中编译它,我收到以下错误:错误C2057:预期的常量表达式错误C2466:无法分配常量大小为0的数组。 我尝试使用矢量[尺寸]但无济于事。 我究竟做错了什么? 谢谢!