C/C++
C/C++
昵称6550523
在哪
展开
-
发邮件SendEmail精简成一个函数,各种开发语言都可调用
把Golang版github.com/jordan-wright/email发邮件的库做成dll动态库,精简成一个函数SendEmail即可发邮件,各种开发语言都可调用。代码已开源:https://github.com/6550523/EmailDllC++调用发邮件范例:#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <Windows.h>#define ERR_LE.原创 2020-09-19 11:13:34 · 620 阅读 · 1 评论 -
读写Excel的动态库版本2,供各种开发语言调用,不需安装Office
之前写了个读写Excel的动态库,接口较少。换了个新版本,采用的https://github.com/360EntSecGroup-Skylar/excelize,接口更丰富,可以写入图片。代码已开源https://github.com/6550523/ExcelDll2C++读写Excel范例:#include "stdafx.h"#include <Windows.h>#define ERR_LEN 1024#define TEXT_LEN 32767#ifdef _W原创 2020-09-14 15:28:31 · 298 阅读 · 0 评论 -
C++ 获取程序所在路径GetModuleFileName,并设置为当前路径SetCurrentDirectory
#include "stdafx.h"#include <string>#include <iostream>#include <atlconv.h>int main(){ TCHAR TPath[MAX_PATH]; DWORD dwRet; dwRet = GetModuleFileName(NULL, TPath, MAX_PATH); USES_CONVERSION; std::string StrExe = ...原创 2020-09-09 10:51:52 · 455 阅读 · 0 评论 -
C++ 简易 HttpServer HttpClient 亲测好用
https://github.com/tashaxing/CppHttpDemo采用mongoose这个库来实现基本的httpserver和httpclient功能编译环境:win10,vs2015, C++11 (支持跨平台)文件列表:├─common ├─mongoose.h └─mongoose.c├─httpclient ├─http_client.h ├─http_client.cpp └─main.cpp└─httpserver原创 2020-08-25 16:43:17 · 525 阅读 · 0 评论 -
C++ IHTMLDocument2 HTML转图片
HBITMAP CreateImage(IHTMLDocument2 *pDoc){ IHTMLElement *pElement = (IHTMLElement *)NULL; IHTMLElementRender *pRender = (IHTMLElementRender *)NULL; if (pDoc == (IHTMLDocument2 *)NULL) return NULL; pDoc->get_body(&pElement); if (pElement .原创 2020-07-31 17:00:39 · 920 阅读 · 0 评论 -
MFC CExplorer1或WebBrowser里调用javaSript
不关心返回值IHTMLDocument2* pDocument; IHTMLWindow2* pWindow; //获得 html 的 Document 节点HRESULT hr = GetDHtmlDocument(&pDocument);//获得 Document 的窗口节点pDocument->get_parentWindow(&pWindow); VARIANT ret; ret.vt = VT_EMPTY;pWindow->execScript(A原创 2020-07-30 15:39:04 · 526 阅读 · 0 评论 -
C++使用SQLite范例
https://blog.csdn.net/xionglifei2014/article/details/80665636原创 2020-07-29 14:11:10 · 200 阅读 · 0 评论 -
std::string 没有字符串格式化format,那就造一个
std::string std_string_format(std::string & _str, const char * _Format, ...) { std::string tmp; va_list marker = NULL; va_start(marker, _Format); size_t num_of_chars = _vscprintf(_Format, marker); if (num_of_chars > tmp.capacity()) { tmp..原创 2020-07-29 09:59:42 · 550 阅读 · 0 评论 -
C++ ATL宏转换各种格式的字符串
A2WUSES_CONVERSION;CString tmpStr;char*LineChar="char* to wchar*";const WCHAR * cLineChar = A2W(LineChar);tmpStr=cLineChar;W2AUSES_CONVERSION;CString tmpStr;WCHAR LineChar="wchar* to char*";const char* cLineChar = A2W(LineChar);A2TUSES_原创 2020-07-28 09:09:34 · 295 阅读 · 0 评论 -
C++ utf-8转unicode转ascii
//UTF-8转Unicode std::wstring Utf82Unicode(const std::string& utf8string){ int widesize = ::MultiByteToWideChar(CP_UTF8, 0, utf8string.c_str(), -1, NULL, 0); if (widesize == ERROR_NO_UNICODE_TRANSLATION){ throw std::exception("Invalid .原创 2020-07-28 08:56:26 · 1392 阅读 · 0 评论 -
C++版:一个.h文件实现的读写ini文件
文件在此下载:使用范例 // simple demonstration CSimpleIniA ini; ini.SetUnicode(); SI_Error rc = ini.LoadFile("example.ini"); if (rc < 0) { /* handle error */ }; ASSERT_EQ(rc, SI_OK); const char* pv; pv = ini.GetValue("section", "key", "default"); A原创 2020-07-09 17:03:02 · 543 阅读 · 0 评论 -
MFC MoveWindow后控件不见了
确定MoveWindow后控件没有跑到窗口外面去,不知为何显示不了。执行:GetDlgItem(IDC_STATIC_1)->InvalidateRect(rect);Invalidate();就好了。原创 2020-06-16 18:08:48 · 799 阅读 · 0 评论 -
MFC 所有控件大小随窗口大小变化而变化
.h里定义:CPoint oldPoint;OnInitDialog里添加:CRect rect; GetClientRect(&rect); / / get the client area size oldPoint. X= rect.right - rect.left ; oldPoint.y= rect.bottom - rect.top ;响应WM_ SIZE消息:if(nType==SIZE_RESTORED || nType==SIZE_MA.原创 2020-06-16 17:58:42 · 505 阅读 · 0 评论 -
C++ 解析Json的库 jsoncpp
源码在这https://github.com/open-source-parsers/jsoncpp安装CMake:https://cmake.org/download/在jsoncpp\src\lib_json目录执行:cmake .创建了vs工程。编辑jsoncpp_lib:复制jsoncpp.lib到自己的工程目录:在include这个目录:使用方法:#include <json\json.h>#pragma comment(lib,.原创 2020-06-15 09:35:42 · 207 阅读 · 0 评论 -
C++ 图片、文件转base64编码
不要用这个版本https://github.com/hopzebordah/base64encoder/blob/master/encode.cpp有坑,会死在result[i] = '=';可以用这个版本https://blog.csdn.net/qq_31681017/article/details/93161285亲测好用#include "stdafx.h"#include <Windows.h>#include <iostream>#include &..原创 2020-06-15 09:08:14 · 1964 阅读 · 0 评论 -
C++ 获取Unix时间戳 Visual Studio C++ 编译通过
//Visual Studio C++ 编译通过#include<iostream>#include<ctime> int main(){ std::time_t t = std::time(0); // t在32为是long型,在64位是 long long型 std::cout << t << " seconds since 01-Jan-1970\n"; return 0;}运行结果:1654986565.原创 2020-06-14 10:13:59 · 323 阅读 · 0 评论 -
windows下编译libcurl,用curl做httpclient挺好用
先准备好git和visual studio c++下载源码:git clone https://github.com/curl/curl.git生成开发工程:curl\projects\generate.batcurl\projects\Windows下面会生成一堆工程:找个合适的版本,打开curl-all.sln,选择合适的解决方案:编译生成libcurl.dll和libcurl.lib:下面是使用方法。在你的.h里导入:#include"curl\.原创 2020-06-14 09:55:25 · 260 阅读 · 0 评论 -
C++解析XML,使用的rapidxml
文件下载:https://download.csdn.net/download/QQ6550523/12519494在 stdafx.h添加:#include "SDKTinyXml.h"/*xml数据解析用的是rapidxml,使用时需加入一下四个文件*/#include "rapidxml.hpp"#include "rapidxml_utils.hpp"#include "rapidxml_iterators.hpp"#include "rapidxml_print.hpp"us原创 2020-06-13 10:45:46 · 276 阅读 · 0 评论 -
C++ HttpClient 只有4个文件,亲测好用
文件下载:https://download.csdn.net/download/QQ6550523/12519465使用方法:#include "HttpClient.h"HTTPClient http;HTTPRequest req;HTTPResponse rep;std::string strData;req.url = "http://www.qq.com";if (http.get(req, rep, strData)){ if (rep.code == 20...原创 2020-06-13 10:24:43 · 393 阅读 · 0 评论