Tag: visual c ++

当在“while” – C中使用常量时,为什么MSVC会生成警告C4127

对于代码, while(1) { /* ….. */ } MSVC生成以下警告。 warning C4127: conditional expression is constant 警告的MSDN页面建议for(;;)而不是while(1) 。 我想知道for(;;)有什么好处for(;;)以及为什么它会在while不断使用? 我应该在GCC上使用什么标志来获得相同的警告?

在VC ++中进入MACRO

我正在调试一个源代码,它有很多大的#define MACRO例程。 我很有兴趣进入它们,但我想,VC ++不允许步入function…所以, 我正在将它们转换为函数,但这对我来说变得很难 有没有办法进入MACRO例程? 特别是在VC ++中? PS:如果gcc编译器支持步入MACRO,我可以将整个代码移植到gcc中

C / C ++字符串文字中的未知元字符?

我使用以下代码段创建了一个新项目: char* strange = “(Strange??)”; cout << strange << endl; 产生以下输出: (奇怪] 因此翻译’??)’ – >’]’ 调试它显示我的char *字符串文字实际上是该值,它不是流转换。 这显然不是我见过的元字符序列。 也许是某种Unicode或宽字符序列? 我不这么认为……我已经尝试禁用所有相关的项目设置无济于事。 有人有解释吗? 搜索:’问号,问号,闭括号’c c ++ string literal

我可以在没有Visual Studio的情况下使用Visual C ++编译器吗?

有没有什么办法可以从命令行使用Visual C或Visual C ++编译器而无需安装Visual Studio? 我以前试过,我找不到一个。 寻求帮助。

LibCurl – 释放静态Lib链接问题

我已经有一段时间了。 我希望有人可以告诉我我做错了什么。 这是我到目前为止采取的步骤: – 下载最新版本的cURL(7.21.7)。 – 使用vc6curl.dsw在Visual Studio 2010中打开解决方案,并将项目转换为VS2010。 – 将libcurl项目配置设置为“release”并构建。 构建成功。创建名为“LIB-Release”的文件夹。 它包含几个obj文件,“libcurl.lib”文件也驻留在这里。 测试应用: – 在项目的设置中,我将编译器指向curl include(headers)。 C / C ++ >>一般>>附加包含目录 – 为预处理器定义添加了“CURL_STATICLIB” C / C ++ >>预处理器定义 – 在我的链接器附加库依赖项中添加了“libcurl.lib”文件夹的路径 链接>>一般>>附加图书馆目录 – 为我的链接器添加了“libcurl.lib”附加依赖项 链接>>输入>>附加依赖项 – 将我的项目配置设置为“Realease”并点击构建! 我得到42个未解决的外部错误: 错误65错误LNK1120:42未解析的外部C:\ Users \ Nick \ Documents \ Visual Studio 2010 \ Projects \ curl_static_lib \ Release \ […]

如何将C ++回调传递给C库函数?

我正在使用C ++开发我的代码,并希望使用MPFIT非线性曲线拟合库,它是用C开发的,但允许用C ++编译。 例如,我有一个名为“myClass”的类,这个类有一个函数myClass :: Execute() 我在myClass.h文件中包含“mpfit.h”。 并尝试从Execute()调用一个名为mpfit的函数。 int status = mpfit(ErrorFunction, num1, num2, xsub_1D, 0, 0, (void *) &variables, &result); 问题是ErrorFunction是myClass的一个function。 所以编译器在我尝试使用它时会出错。 我试图从类对象中携带Erro​​rFunction,但这次我采取下面给出的错误: ErrorFunction在类之外时出错: 错误4错误C2664:’mpfit’:无法将参数1从’int(__ cdecl *)(int,int,double *,double,double *,void *)’转换为’mp_func’ ErrorFunction在类中时出错: Error 3 error C3867: ‘myClass::ErrorFunction’: function call missing argument list; use ‘&myClass::ErrorFunction’ to 错误函数的定义: int ErrorFunction(int dummy1, int dummy2, double* xsub, double *diff, […]

函数调用后无法定义变量

我有很好的C ++经验,现在我正在尝试用纯粹的C做一些事情。但我注意到一个非常奇怪的事实。 以下代码: #include int main() { double a; scanf_s(“%lf”, &a); double b; b = a + 1; printf(“%lf”, b); return 0; } 在sourceLair中编译OK(使用gcc编译器,我知道),但在Microsoft Visual Studio中生成以下错误(使用Visual C ++): 1>Task 1.c(8): error C2143: syntax error : missing ‘;’ before ‘type’ 1>Task 1.c(9): error C2065: b: undeclared identifier 1>Task 1.c(9): warning C4244: =: conversion from ‘double’ to […]

为什么在调试时初始化函数中的字符串不像int那样工作

所以我今天尝试调试一些简单的C程序; 第一个是 int main(){ int a ,b ; return 0 ; } 在解编的时候给了我什么 push ebp mov ebp,esp sub esp,008h 因为我需要有8个字节来存储当前堆栈帧中的a和b,因为它们是局部变量! 但是当我尝试同样的字符串说 int main() { char greeting[12] = “Pwnit2Ownit”; return 0; } 在解编的时候给了我什么 push ebp mov ebp,esp sub esp,0DCh 0DCh是220,但由于字符串只有12个字节长不应该 sub esp,0DCh 是 sub esp,00ch 相反? 任何人都可以分享关于如何将字符串存储在内存中以及稍后通过汇编[优先指令]访问的链接,如果它的长度很大,那么存储在内存中的字符串问候因为我们无法将所有内容存储在堆栈中

C编译器中的列主要数组存储

是否有任何C编译器具有扩展以按列主要顺序存储数组而不是标准行主要顺序?

使用Win32 API连接字符串

使用Win32连接字符串的最佳方法是什么? 如果理解正确,正常的C方法将是使用strcat ,但由于Win32现在处理Unicode字符串(又名LPWSTR ),我想不出strcat如何使用它。 有这个function,还是我应该自己编写?