C++ Boost库初步使用 - 使用CFree
首先下載并安裝 Boost;
在CFree中編寫代碼如下;
#include <windows.h> #include "resource.h" #include <boost/regex.hpp> //#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 WINAPI WinMain (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 CALLBACK WindowProcedure (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文件;
照此文操作;
? ??https://blog.csdn.net/bcbobo21cn/article/details/106147889
拷貝lib和dll到當前工程目錄;
然后工程設置如下;
然后構建;出現錯誤;
? ??ld.exe: cannot find -lboost_regex-vc142-mt-x64-1_70
編譯是沒有問題;鏈接時候出錯;
現在lib和dll有了;配置和?https://blog.csdn.net/bcbobo21cn/article/details/106147889?一樣的;
為什么另一文會成功呢;看下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庫;
總結
以上是生活随笔為你收集整理的C++ Boost库初步使用 - 使用CFree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言二级指针Demo - Win32
- 下一篇: 超图桌面版制作一幅简单专题图示例