Tag: visual studio 2010

命令行参数和文件输入

上个学期我从命令行参数输入文件时遇到了可怕的时间,我需要将它用于我正在进行的练习。 我编写了一个简单的shell来让它工作: prob_5.c #include int main(int argc, char *argv[]) { int i; FILE *fp; int c; for (i = 1; i < argc; i++) { fp = fopen(argv[i], "r"); if (fp == NULL) { fprint(stderr, "cat: can't open %s\n", argv[i]); continue; } while ((c = getc(fp)) != EOF) { putchar(c); } fclose(fp); } return 0; […]

如何在visual studio 2010中编译C?

我想确保项目完全配置为C (NOT C ++) 。 这样做我找不到任何准确的步骤。 我愿意使用Eclipse ,除了它没有创建一个开箱即用的工作项目(这没有任何意义……)。

gotoxy()函数在Visual Studio中不起作用

我无法在Visual Studio 2010中使用gotoxy()函数。有什么替代方法吗?

C程序将无法在Visual Studio 2010中编译

我有一个简单的C程序,我可以通过Linux上的命令行轻松编译,但想要使用Visual Studio调试程序,以便我可以更容易地看到它正在做什么,但我无法编译。 我已经创建了一个新的cpp Win32控制台应用程序。 添加了我的.c和.h文件,但我无法编译。 我得到100多个主要看起来像红色鲱鱼的错误。 例如,我有一个错误,说我没有声明变量,我可以看到它在紧接之前的行上声明。 例如: int i; for (i = 0; i < unpacked_length; i++) { 在“for”行上我收到一个错误:“错误C2065:’i’:未声明的标识符” 所以其他事情显然正在发生。 一个似乎合法的错误就是这个: static unsigned char* Base64_Charset = “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”; IntelliSense:类型为“const char *”的值不能用于初始化“unsigned char *”类型的实体 由于这在通过命令行编译时起作用,我不知道为什么intellisense会在这里给出这个错误,除非这个编译器有不同于我通过命令行使用的另一个规则。 我大约15年没有做任何C,也不知道这可能是编译器的差异,还是这里还有其他东西。 源中唯一包括: #include “dtcrypt.h” #include #include 感谢任何帮助!

VS2010 C代码 – 字符串池

当您使用以下标志进行编译时,如果在VS 2010中代码崩溃,并且如果添加/ GF-或删除opimization标志,则它们不会崩溃。 崩溃发生在转换’if(path [i] ==’/’)’的汇编代码中。 我喜欢理解编译器在这里做的优化并导致崩溃。 期待一些指示。 -Karthik cl.exe /MD /O2 test.c // Test.c #include #include void testpath(char* path, int bufsiz) { int i; printf(“%p\n”, path); for( i=0; i < strlen(path); i++ ) { if( path[i] == '/' ) { path[i] = '\\'; } } } int main() { const char* path = "testexport.prj"; […]

用64位int移位

我有一个__int64变量x = 0x8000000000000000 。 我尝试按字节顺序移动: x >> 4 我认为结果应该是0x0800000000000000 ,但不幸的是我得到0xf800000000000000 。 我用VS10。 为什么会这样? 我该如何解决?

错误C2099:初始化程序不是常量

Protocol.h typedef struct sDevice_d { char name[24]; signed int (*Send)(unsigned char*, unsigned short); signed int (*Recv)(unsigned char*, unsigned short); } sDevice_d, *psDevice_d; Device.c #include “Protocol.h” sDevice_d sDevice = { “ten”, I2c_Send }; psDevice_d psDevice = &sDevice; static signed int I2c_Send(unsigned char* buf, unsigned short len) { return 0; } 在上面的代码中我收到以下错误: 错误C2099:初始化程序不是常量 请帮我解决这个问题。 我正在使用Visual Studio Win32应用程序。

如何在/使用Visual Studio 2010为64位Windows构建libcurl?

所以最初,我按照BUILD.WINDOWS.txt的指示,通过创建一个新文件winbuild.bat并将其放在我的curl文件夹的根目录中,我能够获得构建32位的libcurl: CALL “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat” CD winbuild DEL CURL_OBJS.inc DEL LIBCURL_OBJS.inc DEL vc100.idb nmake /f Makefile.vc mode=dll VC=10 ENABLE_WINSSL=yes GEN_PDB=yes MACHINE=X86 CD .. EXIT /B 0 然后我从现有代码转到File / New / Project … / Visual C ++ /使用外部构建系统/构建命令行:winbuild.bat。 我尝试使用winbuild64.bat在我的x64属性中创建一个新平台: CALL “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat” CD winbuild DEL CURL_OBJS.inc DEL LIBCURL_OBJS.inc DEL […]

如何更改VS的编译器?

我正在使用VS 2010.我已经更改了编译器C代码而不是C ++的设置。 它工作正常,但问题是MS编译器不支持C99标准,因此我正在寻找一个可以与VS 10一起使用的C编译器。如何做到这一点? 提前致谢。

内存映射文件偏移低

我正在用C和Visual Studio编写Windows程序。 我必须映射一个文件,而不是从它的第750个字节访问它。 我试过了 pFile = (char *) MapViewOfFile(hMMap,FILE_MAP_ALL_ACCESS,0,(DWORD) 750,0) 打开文件,但它返回错误1132。 ERROR_MAPPED_ALIGNMENT 1132(0x46C)指定的基址或文件偏移量没有正确的对齐方式。 怎么解决这个?