博客
关于我
C++ Boost库初步使用 - 使用CFree
阅读量:110 次
发布时间:2019-02-26

本文共 3299 字,大约阅读时间需要 10 分钟。

首先下载并安装 Boost;

在CFree中编写代码如下;

#include 
#include "resource.h"#include
//#include "C://local//boost_1_70_0//boost//regex.hpp"using namespace std; LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM); HINSTANCE hInst;TCHAR szClassName[] = TEXT("boostDemo");boost::regex exampleregex( "boost::regex" );boost::cmatch result; int WINAPIWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil){ HWND hwnd; MSG messages; WNDCLASSEX wincl; hInst = hThisInstance; wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; wincl.style = CS_DBLCLKS; wincl.cbSize = sizeof (WNDCLASSEX); wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor (NULL, IDC_ARROW); wincl.lpszMenuName = MAKEINTRESOURCE (IDC_BOOSTDEMO); wincl.cbClsExtra = 0; wincl.cbWndExtra = 0; wincl.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); if (!RegisterClassEx (&wincl)) return 0; hwnd = CreateWindowEx ( 0, szClassName, TEXT("boostDemo"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 200, HWND_DESKTOP, NULL, hThisInstance, NULL ); ShowWindow (hwnd, nFunsterStil); while (GetMessage (&messages, NULL, 0, 0)) { TranslateMessage(&messages); DispatchMessage(&messages); } return messages.wParam;} LRESULT CALLBACKWindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ PAINTSTRUCT ps; HDC hdc; RECT rt; char szBuffer[100]; char *buf = "This is boost::regex example"; switch (message) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDM_boost: hdc=GetDC(hwnd); if( boost::regex_search( buf, result, exampleregex ) ) { //std::cout << result.str() << std::endl; wsprintf(szBuffer, "%s",result.str()); TextOut(hdc,20,20,szBuffer,lstrlen(szBuffer)); } break; case IDM_ABOUT: MessageBox (hwnd, TEXT ("boostDemo v1.0\nCopyright (C) 2020\n by bo"), TEXT ("boostDemo"), MB_OK | MB_ICONINFORMATION); break; case IDM_EXIT: DestroyWindow(hwnd); break; default: return DefWindowProc(hwnd, message, wParam, lParam); } break; case WM_CREATE: break; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rt); EndPaint(hwnd, &ps); break; case WM_DESTROY: PostQuitMessage (0); break; default: return DefWindowProc (hwnd, message, wParam, lParam); } return 0;}

把boost目录拷贝到CFree的包含目录;

然后就能 #include <boost/regex.hpp>;<> 是表示系统路径;#include "",这是自己的路径;

此示例调用Boost的正则库;还需要相关的lib和dll文件;

照此文操作;

    

拷贝lib和dll到当前工程目录;

然后工程设置如下;

然后构建;出现错误;

    ld.exe: cannot find -lboost_regex-vc142-mt-x64-1_70

编译是没有问题;链接时候出错;

现在lib和dll有了;配置和  一样的;

为什么另一文会成功呢;看下CFree目录;当要使用自己的netapi32.lib和netapi32.dll时,CFree的库目录下有如下;

libnetapi32.a文件;目前要使用boost_regex-vc142-mt-x64-1_70.lib和dll;但是CFree的lib目录下没有 boost_regex-vc142-mt-x64-1_70.lib对应的.a文件;所以不能构建;

那么目前CFree 还不能支持Boost库;

转载地址:http://hhuy.baihongyu.com/

你可能感兴趣的文章
MQTT工作笔记0007---剩余长度
查看>>
MQTT工作笔记0009---订阅主题和订阅确认
查看>>
Mqtt搭建代理服务器进行通信-浅析
查看>>
MS Edge浏览器“STATUS_INVALID_IMAGE_HASH“兼容性问题
查看>>
ms sql server 2008 sp2更新异常
查看>>
MS UC 2013-0-Prepare Tool
查看>>
MSBuild 教程(2)
查看>>
msbuild发布web应用程序
查看>>
MSB与LSB
查看>>
MSCRM调用外部JS文件
查看>>
MSCRM调用外部JS文件
查看>>
MSEdgeDriver (Chromium) 不适用于版本 >= 79.0.313 (Canary)
查看>>
MsEdgeTTS开源项目使用教程
查看>>
msf
查看>>
MSSQL数据库查询优化(一)
查看>>
MSSQL数据库迁移到Oracle(二)
查看>>
MSSQL日期格式转换函数(使用CONVERT)
查看>>
MSTP多生成树协议(第二课)
查看>>
MSTP是什么?有哪些专有名词?
查看>>
Mstsc 远程桌面链接 And 网络映射
查看>>