Tag: visual c ++

如何在gcc中强制执行C89样式的变量声明?

我在代码库上工作,主要是带有一点点C ++的C语言,并且主要是用gcc构建的,但偶尔需要用MSVC构建。 微软的C编译器仍然是C89,只有一些小的扩展,它仍然不支持C ++ / C99的混合代码和变量定义。 因此,我需要找到一种方法来防止开发人员在使用gcc时编写无序代码/变量定义,否则构建随后会破坏MSVC。 如果我使用gcc -std=c89那么一切都会中断,因为不允许使用C ++风格的注释(可能还有其他问题,但我还没有进一步研究过)。 如果我使用gcc -std=gnu89则允许无序代码/变量定义,这对我也没有帮助。 有任何想法吗 ? 我想我只需要像gcc -std=c99 -fno-inline-variable-definitions这样的选项,如果存在这样的选项的话。

有没有办法在GCC中使用fopen_s()或者至少创建一个#define?

MSVC编译器表示不推荐使用fopen() ,并建议使用fopen_s() 。 有没有办法使用fopen_s()并仍然可移植? #define任何想法?

为什么在将int转换为char时没有溢出警告

int i=9999; char c=i; 没有溢出警告,而 char c=9999; 给, 警告C4305初始化从int到char的截断 为什么在将int转换为char时没有溢出警告?

在C ++中处理CSV文件

我有一个要求,我需要从下面显示的csv文件中搜索产品条形码。 Sr. No.,Product Barcode,Product Description,Discount (%),Price Per Unit 1,011001,TOILET PAPER,5,40 2,011002,BATHING SOAP,0,27 3,011003,MOISTURIZER,3,95 4,011004,SHAMPOO,0,115 5,011005,CONDITIONER,5,155 6,011006,TISSUE,10,60 7,011007,HAIR OIL,0,75 8,011008,HAIR GEL,0,96 9,011009,BODY LOTION,7,195 10,011010,FACE WASH,0,85 当用户输入条形码时,它应该搜索csv文件并且应该获取每单位价格以及折扣并生成账单。 这必须在C ++中实现。 在开发的后期阶段,我还需要更新csv文件内容。 例如,如果它有一个“数量”列,显示特定产品的库存,并且该产品已售出,我还需要更新csv字段数量。 请指导我如何搜索csv文件并选择字段。 我搜索网但找不到满意的答案。 我正在使用Bloodshed Dev C ++。

argv 只包含Visual C ++ 2010中第一个命令行参数的第一个字母

可能重复: C ++中_tmain()和main()有什么区别? 我有一个控制台应用程序,它需要一个命令行参数。 int _tmain(int argc, char* argv[]) { … printf(“Path: %s\n”, argv[1]); … } 当我使用参数( myprogram.exe D:\myfolder\myfile )运行程序时,它会打印Path: D而不是Path: D:\myfolder\myfile 。 我应该如何更改提取第一个命令行参数( argv[1] )的过程,以便它返回完整路径,而不仅仅是第一个字母? 我试图将路径放在引号( myprogram.exe “D:\myfolder\myfile” )中,但它没有帮助。

如何检查stdout是否已被重定向到Windows上的NUL(在Linux上也称为/ dev / null)?

如何检查我的程序的stdout是否已重定向到NUL ? 这样我就可以避免输出数据,因为它毫无意义。 我主要需要这个用于Windows,但如果你有一个Linux解决方案,它可能对将来的其他人有所帮助,所以也可以随意发布。

禁用VC ++ 2010项目中特定文件的预编译头

正如标题所说。 我有一个C ++项目,并添加了1个C .h文件和一个C .c源文件,但它们遇到了问题,因为项目的其余部分使用了预编译的头文件,但是如果我尝试将它包含在那些C文件中,那么它给出错误。 我不能只为整个项目禁用预编译头文件,因为它是使用它的大型项目的一部分,并且由其他人编写代码。 那么有没有办法选择那两个C文件(.h头文件和.c源文件)并禁用PCH? 谢谢。

在旧的Borland C中使用Visual C ++ DLL?

我必须使用旧的Borland编译器(BC 5)支持用C编写的旧应用程序。 不幸的是,我们使用的旧TCP / IP库开始显示它的年龄,并且遇到了Vista和Win7机器的问题。 我有一个新的MS Visual C ++函数库,我想用它来制作一个可以从Borland C调用的DLL。 所以,我有两个问题:1)如何使一个Visual C ++ DLL可以从Borland C程序调用,2)如果它是可调用的,如何从普通的旧C调用C ++函数? 理想情况下,整个项目应该转换为Visual C,但是有许多遗留function可以使该项目成为一项重大任务! 我正在寻找一个快速补丁来让它保持活力一段时间:) 史蒂夫

CPP +正则表达式validationURL

我想在c ++ {MFC}中构建一个正则表达式来validationURL。 正则表达式必须满足以下条件。 有效url: – http://cu-241.dell-tech.co.in/MyWebSite/ISAPIWEBSITE/Denypage.aspx/ http://www.google.com http://www.google.co.in 无效的url:- http://cu-241.dell-tech.co.in/ \ MyWebSite / \ ISAPIWEBSITE / \ Denypage.aspx / = Regx必须检查无效url为“/ \ MyWebSite / \ ISAPIWEBSITE / \ Denypage”之间的’\’字符的.aspx /” http://cu-241.dell-tech.co.in//////MyWebSite/ISAPIWEBSITE/Denypage.aspx/ =由于多次输入“///////”,Regx必须检查并使URL无效在url中。 http://news.google.co.in/%5Cnwshp?hl=en&tab=wn =正则表达式必须检查并使URL无效,以便额外插入%5C和%2F字符。 我们如何开发满足上述条件的通用正则表达式。 请通过提供一个正则表达式来帮助我们,这个表达式将处理CPP中的上述场景{MFC}

在x86-64平台上计算C(++)中64位无符号参数的(a * b)%m FAST?

我正在寻找一种快速方法来有效地计算uint64_t类型的a , b , n的模数n (在数学意义上)。 我可以忍受前提条件,例如n!=0 ,甚至a<n && b<n 。 请注意,C表达式(a*b)%n不会删除它,因为产品被截断为64位。 我正在寻找(uint64_t)(((uint128_t)a*b)%n)除了我没有uint128_t (我知道,在Visual C ++中)。 我正在使用Visual C ++(最好)或GCC / clang内部,充分利用x86-64平台上可用的底层硬件; 或者如果不能用于便携式inlinefunction。