现在位置: 首页 > 自动控制 > 工业·编程 > 文章
在VS 开发环境下,开发C/C++项目,增加以下宏定义: #define chSTR2(x)   #x #define chSTR(x)    chSTR2(x) #define chMSG(desc)  message(__FILE__ "(" chSTR(__LINE__) "):" #desc) 在代码中可以打印信息到编译输出窗口: 用法: #progma chMsg(这里需要其他人提供的模块,但其它人模块还未完成,等其它人模块完成,再处理此处) 编译输出结果: 1>------ Build sta...
阅读全文
_MSC_VER 定义编译器的版本。下面是一些编译器版本的_MSC_VER值(参见扩展阅读中的参考文献2的链接) MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013) MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012) MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010) MSVC++ 9.0  _MSC_VER == 1500 (Visual Studio 2008) MSVC++ 8.0  _MSC_VER == 1400 (Visual Studio 2005) MSVC++ ...
阅读全文
2014-07-04 04:24 工业·编程 ⁄ 共 1757字 评论 1 条
一、一般用法 我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起. #define STR(s)      #s  #define CONS(a,b)   int(a##e##b) printf(STR(vck));            // 输出字符串"vck"       printf("%d\n", CONS(2,3));   // 2e3 输出:2000 二、当宏...
阅读全文
$(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。 $(References) 以分号分隔的引用列表被添加到项目中。 $(ConfigurationName) 当前项目配置的名称(例如“Debug”)。 $(PlatformName) 当前项目平台的名称(例如“Win32”)。 $(Inherit) 指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。 $(NoIn...
阅读全文
    windows的socket在创建后,默认是阻塞调用的,也就是说函数recv,recvfrom,send,sendto等函数都是阻塞的;那么我们如何将他们设置成非阻塞调用呢?我们可以通过windows为我们提供的ioctlsocket 函数实现;先给出一个例子: BOOL LoadSocketSystem(void) { WORD wVersionRequested; SOCKADDR_IN addrSrv; BOOL bRet = FALSE; WSADATA wsaData;     SOCKET sockClient; int err; int i...
阅读全文
一、 _L宏 在字符串前加一个L,   如  L"我的字符串"    表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。   二、_T宏 _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的(Unicode还是ANSI)字符处理方式    如果你定义了UNICODE,那么_T宏会把字符串前面加一个L。这时 _T("ABCD") 相当于 L&...
阅读全文
  __cdecl     __stdcall   C 和 C++ 程序的缺省调用规范   为了使用这种调用规范,需要你明确的加上 __stdcall(或 WINAPI )文字。即 return-type __stdcallfunction-name[(argument-list)]     在被调用函数 (Callee) 返回后,由调用方 (Caller)调整堆栈。   1. 调用方的函数调用    ...
阅读全文
1. 添加编译所需要(依赖)的 lib 文件 [解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。 (等同于“#pragma comment(lib, "winsock.lib") ”语句) 2. 添加库(Libs)文件目录 方法 1:[解决方案资源管理器]“项目->属性->配置属性->连接器->常规->附加库目录” 方法 2:[菜单]“工具->选项->项目和...
阅读全文
如果已经写好了一个C++的类,希望把它做成dll动态链接库,这里介绍一种简单的方法。      1、制作dll      利用VC6新建工程时选择win32 dynamic-Link Library,然后添加头文件和cpp文件。假设类名为exp,添加头文件exp.h,头文件中声明类的定义,添加exp.cpp,其中是成员函数的具体定义。与一般写类的定义不同,在exp.h中需要写成 class __declspec(dllexport) exp {   ...
阅读全文
    将一个cpp文件分割成几个cpp文件,另外加上一个h文件。《C++游戏设计》这本书上了解到,cpp文件通常是要编译的,而且是带着h文件一起展开进行编译的。通常的h文件不能进行编译。所以我们只能在cpp文件上进行编译。但是这里问题就出现了。     如果一个大型项目,它要处理为数众多的文件,可能文件的包含关系有着数十层,h文件和cpp文件众多,那么项目组的如果修改了一个小小的h文件,就得使...
阅读全文