草庐IT

c++ - 如何在 Visual Studio 2010 中添加 Poco 库?

自从我用C++编程以来已经有一段时间了,现在我正在努力使用这个Poco库,我试图添加它来执行一些HTTP请求。首先,我应该在哪里添加poco文件,也许是在我的项目中的某个地方?其次,我已经阅读了一些关于命令提示符和运行将编译文件的脚本的内容,但我必须给它一个参数,这是我的visualstudio版本,选择从70到110。我如何找出哪个一个我应该使用?如果有人能为我提供分步指南,我将不胜感激。谢谢。 最佳答案 你指的是POCOC++LibrariesandTools?如果是这样,下载POCOC++库here解压(例如:解压到C:\po

c++ - 有没有一种干净的方法来防止 windows.h 创建 near & far 宏?

在WinDef.h的深处有分段内存时代的遗迹:#definefar#definenear如果您尝试使用near或far作为变量名,这显然会导致问题。任何干净的解决方法?除了重命名我的变量? 最佳答案 您可以安全地取消定义它们,这与其他人的说法相反。原因是它们只是宏的。它们只影响定义和未定义之间的预处理器。在您的情况下,这将从windows.h的早期到windows.h的最后一行。如果您需要额外的Windowsheader,您可以将它们包含在windows.h之后和#undef之前。在您的代码中,预处理器将按预期简单地保持符号不变。关

c++ - 如何在 C 和 C++ 中实现装饰器

我在C和C++中遇到了一种情况,可以用像装饰器这样的Python之类的东西来最好地解决:我有几个函数,我想用其他东西包裹起来,以便在函数进入一些之前语句被执行,当它离开时执行一些其他功能。例如,我在库C文件中有几个函数,调用时应该锁定信号量,并且在将控制权返回给被调用方之前,应该释放信号量。没有锁,他们有以下结构:intf1(int){......}intf2(char*){....}intf3(blabla){....}...fn(...)我想定义一个全局信号量,它应该在每个函数被调用之前被锁定,并在函数返回时被释放。我想尽可能简单地做到这一点;接近于此的东西:#lockprotec

c - 如何在 Cmake 中链接 curses.h?

我知道这可能是一个愚蠢的问题,但我看不透它,我在这里搜索了其他答案,它们与我的答案非常接近,但是,我仍然不明白该怎么做。问题是我无法在Windows中编译使用curses.h的“C”程序(我正在使用Clion和MinGW),当我尝试这样做时,它为curses.h(例如“initscr”、“clear”……)。通过MinGW安装管理器,我安装了“mingw-32-libpdcurses”(有两个可用的两个不同的类:dev和dll;我安装了dll一个)。我正在使用的CMAKEfile是这样的:cmake_minimum_required(VERSION3.3)project(Project

C++:windows.h 通常是一个高效的代码库吗?

我听到一些人提示在C++应用程序中包含Windows头文件并使用它。他们提到这是低效的。这只是一些都市传说还是背后真的有一些确凿的事实?换句话说,如果您认为它是有效的或低效的,请解释事实如何。我不是C++Windows程序员大师。如果有详细的解释,我们将不胜感激。*Edit:我想知道在编译时和执行时。抱歉没有提到它。 最佳答案 windows.h不是“代码库”。它是一个头文件,不包含任何可执行代码(除了宏定义,但那些仍然没有被编译——它们的扩展是,如果你使用它们)。因此,严格从性能角度来看,仅仅包含它只会对编译时间产生任何影响。不过

c - Windows C 运行时库没有像我预期的那样链接?

作为一名长期的POSIX/Linux/BSDC开发人员,现在尝试使用VisualC++2010做一些事情,我对工具有点摸不着头脑,因为它与GCC的工作方式不太一样工具集可以。从理论上讲,至少根据文档,它看起来非常相似(而且我确信是这样),但我没有看到我期望看到的东西。在这种情况下,我正在尝试构建一个C库供以后在.NET项目中使用,我想小心避免以后发生运行时冲突。我的想法是构建一个静态库,链接到C运行时的DLL版本(调试配置中的msvcr100d.dll),因此我设置了/MDd标志。但是,当我使用dumpbin.exe检查生成的.lib输出时,它没有显示依赖项或导入项。两个问题,真的:这

Windows 中的 C 标准库链接

标准库和运行时库有区别吗?Windows中的C标准库和WindowsCRT库一样吗?它是否在msvcrt.dll中实现?如果不是,那是哪里?该库如何以及何时链接到可执行文件?是否有相对地址的.lib文件?抱歉,如果我混合了一些东西...... 最佳答案 在Windows上,有3个模型处于调试和非调试状态,即总共6个1)单线程2)多线程使用MSVCRT.DLL3)多线程不使用MSVCRT.dll默认情况下,Windows选择选项2。这是唯一使用运行时库的选项。使用选项1和3,所有内容都链接到可执行文件中。您可以将该可执行文件带到任何9

c++ - 在另一台计算机上启动使用 MinGW 编译的 Windows 应用程序时出现库链接错误

我编写了一个简单的HelloWorld控制台应用程序,并使用以下命令之一在Windows7上使用MinGW编译器对其进行了编译:gcc-Wall-pedanticHello.c-oHello.exeg++-Wall-pedanticHello.cpp-oHello.exe但是编译器将一些自己的动态库链接到应用程序中,当我将可执行文件复制到另一台未安装MinGW的Windows7计算机时,我遇到了缺少库的错误。在Linux上,这个问题通过包系统解决,它会自动安装所有需要的库,但在Windows中,您肯定不想告诉您的用户安装MinGW才能运行您的程序。所以我的问题是:如何正确链接所有库以及

轻量级c语言开源日志库log.c介绍 - 实现不同级别和参数化日志打印

前言c语言没有现成的日志库,如果要记录日志,需要自己封装一个日志库。如果要实现日志级别和参数打印,还是比较麻烦的,正好在github找到了一个c语言开源日志库,可以实现日志级别打印,参数打印,而且还会记录日期和行号,最重要的是代码非常少,只有100多行,可以直接包含在我们自己的工程代码中,不需要任何依赖。源码地址github源码连接使用介绍直接把工程目录下的log.c和log.h下载下来,包含到工程代码中即可,没有其他依赖。日志级别由低到高,分别为LOG_TRACE、LOG_DEBUG、LOG_INFO、LOG_WARN、LOG_ERROR、LOG_FATAL如果设置日志级别为LOG_TRAC

c++ - 将新的 Windows 功能与回退一起使用

我使用动态库和GetProcAddress的东西已经有一段时间了,但它总是看起来乏味、智能感知敌对和丑陋的做事方式。有谁知道在保持与旧操作系统兼容的同时导入新功能的简洁方法。假设我想使用一个XML库,它是Vista的一部分。我调用LoadLibraryW,然后如果HANDLE不为空,我就可以使用这些函数。但我真的不想去#typedef(void*)(PFNFOOOBAR)(int,int,int)和PFNFOOOBARfoo=reinterpret_cast(GetProcAddress(GetModuleHandle(),"somecoolfunction"));,一直乘以50,方式