草庐IT

C++标准

全部标签

windows - 我应该使用 OLE 剪贴板机制还是标准剪贴板 API?

我正在向现有的Windows应用程序添加复制和粘贴功能。ThisMSDNpage建议使用OLE剪贴板机制而不是标准剪贴板API。想知道对此的共识是什么?我认为OLE的东西已经死了一点,我不想让自己熟悉所有的类(class),除非有一些好处。 最佳答案 除非您需要OLE提供的工具,否则我会坚持使用老式的剪贴板。它更易于使用。 关于windows-我应该使用OLE剪贴板机制还是标准剪贴板API?,我们在StackOverflow上找到一个类似的问题: https:

c++ - Visual C++ 标准库关键字

我想编写std::exception和std::runtime_error的unicode版本。所以我想有什么更好的方法就是从C++标准库中获取实现并更改它们以支持unicode。所以我在VisualC++中提取了exception和stdexceptheader,复制了代码,进行了更改。问题是,除非删除_CRTIMP_PURE,否则我无法链接它。我还从所有成员函数中删除了_EXCEPTION_INLINE__CLR_OR_THIS_CALL前缀。它在工作,但我很好奇所有这些东西做了什么。_EXCEPTION_INLINE它的字面意思就在它的正上方定义为#define_EXCEPTIO

c# - 从英国坐标转换为标准 WGS84 nmea

我已经发布了类似的帖子。我确实在理论上得到了答案,但我真的需要有人帮助我。所以我正在使用这个EXAMPLE用于测试我的GPS。我想要做的是如何获得标准的十进制值,如纬度和经度的56,322415。因为现在我得到了5304,254个值。我需要这种形式,因为我会将其用于Googlemap。你能检查代码并告诉我应该遗漏什么或者如何将它转换为WGS84格式吗?谢谢。编辑:这是解释我运行程序时看到的图片这是代码项目页面之一:编辑2:所以当我使用THISCONVERTER看看当我有学位时我需要得到什么小数值我没有得到相同的值。这是我应该得到的值:这是我在程序中获得的值(value):46.6466

c - #define NAME ((LPCSTR) 5) 是什么?

这行代码是什么意思?#defineNAME((LPCSTR)5)如果我定义了一个变量,NAME*tmp,然后像这样使用它:((LPCSTR)5)*tmp;这段代码有什么作用?注意:LPCSTR是typedef__nullterminatedCONSTCHAR*LPCSTR 最佳答案 这是一个简单的转换,它将5转换为字符指针(__nullterminatedCONSTCHAR*)这可能是标准未定义的行为,但有时会在现实生活中使用。寻址您机器上的特定物理地址-例如,内核必须执行此操作以配置卡、板载芯片等...要在参数或返回值中发送特殊值

c++ - 如何使用 Windows API WriteFile 将 ASCII 字符串写入文件?

我知道我们可以使用WriteFile将内容写入文件:BOOLWINAPIWriteFile(HANDLEhFile,LPCVOIDlpBuffer,DWORDnumOfBytesToWrite,LPDOWRDlpNumOfBytesWritten,LPOVERLAPPEDlpOverlapped);但是我们如何使用此函数将ASCII字符串写入文件呢? 最佳答案 通常是这样的:WriteFile(your_file,your_string,strlen(your_string),&written,NULL);虽然您通常不想这样做——除

c++ - 如何获取我的线程的语言环境名称?

例如,我可以使用_create_locale在我的C程序中设置语言环境因此:localeUS=_create_locale(LC_ALL,"English_UnitedStates.1252");但我需要的是相反的,即为调用线程检索语言环境名称(上面函数的第二个参数)。知道怎么做吗?附言。我知道现代Windows使用LCID。我需要此语言环境名称以与旧代码兼容。 最佳答案 希望您可以使用标准C++。来自std::locale::name:例子#include#include#includeintmain(){std::localel

C 中的跨平台目录路径验证(Linux 和 Windows)

我有一个接受目录路径作为字符串的C函数。该函数在给定路径处创建一个目录。intcreate_directory(constchar*path){//givenpathmaybeabsoluteorrelative//step1:-needtovalidatethegivenpath(crossplatformforbothLinuxandwindows)//whatarethecriteriaforpathvalidation?//step2:-checkpermissionaboutuseraccessibility,meanscannotcreatedirectory,ifpath

c - 当询问用户名时getenv返回null?

我想使用stdlib函数getenv()获取用户名,但是我总是得到NULL这是我编写的代码:#include#includemain(){char*hai;printf("ThecurrentUsernameis\n");hai="USER";printf("%s\n",getenv(hai));exit(0);}getenv()返回的值是否取决于您用来编译代码的机器,以及为什么返回值为NULL? 最佳答案 在Windows上,您需要使用getenv("USERNAME")。USER/USERNAME环境变量不是标准化的,除非您自己

windows - 在 Windows 上,我可以安装到哪些标准位置而不需要管理员权限?

我的应用程序当前将文件写入其安装目录,这意味着ProgramFiles不是一个有效的选项(我知道这并不理想)。但我也希望我的安装程序(Inno)不需要管理员权限,即不需要UAC;我认为GoogleChrome可以做到这一点。在考虑这两个限制的情况下,默认使用哪个常见位置是有意义的? 最佳答案 如果你真的想制作一个不需要管理员权限的每用户安装程序,使用的正确设置是:[Setup]PrivilegesRequired=lowestDefaultDirName={userpf}\YourAppName请注意(解决Glytzhkof的顾虑)

c - 打开串口 ANSI C

在过去的几个小时(几天)里,我一直在谷歌上搜索,以找到一个简单的工作示例,说明如何在Windows上的ANSIC中打开串行端口。我尝试打开一个txt文件,通过char方式发送到串口。(如果你能给我一个提示如何延迟1秒按字符发送字符,我也会很高兴!)这是我的代码,但不知何故它不起作用:(FILE*file;file=fopen("text.txt","r");if(file){while((c=getc(file))!=EOF){FILE*fp;fp=open("COM1",O_RDWR|O_NOCTTY|O_NDELAY);if(fp==-1)puts("Couldn'topenpor