c++
sdragonx
音乐、编程、运动
展开
-
一个小程序
//// Created by Jolen on 2021/6/22.//#include <iostream>#include <fstream>#include <iomanip>#include <sstream>#include <string>#include <vector>#include <math.h>using namespace std;typedef vector<.原创 2021-10-21 13:48:46 · 177 阅读 · 0 评论 -
TMemo 响应 Ctrl + A
看了这篇文章:://blog.csdn.net/aroc_lo/article/details/38387379才知道,CTRA+A == 1,我用的C++Builder,下面是改进的代码:void __fastcall TfrmMain::Memo1KeyPress(TObject *Sender, wchar_t &Key){ if(Key == 1){ Memo1->SelectAll(); Key = 0;//设置Key为0,不然会滴滴响 }}...原创 2018-09-07 13:48:14 · 297 阅读 · 0 评论 -
pool_allocator轻量模板内存池
只能一次申请一个对象,没有线程锁。template <typename T, size_t PAGE>class pool_allocator{public: typedef pool_allocator this_type; typedef T value_type; typedef value_type* poin...原创 2018-10-22 14:01:46 · 580 阅读 · 0 评论 -
放大镜(小工具)
多年前做的一个小工具,分享一下吧。下载链接:百度网盘 提取码:8y34原创 2018-10-22 18:24:16 · 1514 阅读 · 0 评论 -
c++builder 10.2.3的编译器真干净啊
一直坚守在cb2010下面,今天试用了一下官网的那个免费的编译器,编译出来的程序真干净啊。下面的是对比,左边的g++编译出来的程序,右边的是bcc32c的。...原创 2018-10-31 23:35:55 · 6813 阅读 · 0 评论 -
关于Android ndk的全局变量
想测试一下安卓ndk对全局变量的使用,写了一个测试类:static int a = 0;//标记1static int b = 0;//标记2void on_exit();class app_test{public: int *p; app_test() : p(null) { using namespace std; APP_WARN("app test init...原创 2018-12-01 14:22:37 · 1042 阅读 · 0 评论 -
C++Builder XE2 lite精简版
听说XE8要出了,我这刚从CB6转型到2010不久的,也是眼馋。奈何XE7太大了,平时也只是学习琢磨点小东西,网上找的2010、2011(XE1)的精简版用着挺好,就是感觉不那么稳定。这两天闲着没事做了一个C++Builder XE2的精简版,测试能用,没有集成第三方控件,带boost库,fmx。纯C++的(顺便鄙视一下那些只做delphi绿色版的高手,逼我这么做的),7z压缩下来164M,下面我...原创 2015-03-31 22:44:07 · 5295 阅读 · 3 评论 -
OpenGL字体绘制
/* glfont.hpp sdragonx 2019-08-15 00:03:33 opengl字体类,提供初学者参考学习opengl初始化之后,创建字体font.init(L"微软雅黑", 32, 512);然后在绘制函数里面添加以下测试代码://开启2D模式,后面的800x600要根据窗口的实际客户区大小设置,不然缩放之后效果不好push_view2D(0, 0...原创 2019-08-15 14:35:32 · 1401 阅读 · 0 评论 -
根据文件数据,检测文件类型
这个函数,我会一直扩充下去。很多资料是网上查的,有自己分析的,当然肯定有bug。目前头疼的是mp3格式的检测,有的mp3文件前面有一些空白,而且长度不固定。iso的鉴定方式貌似不对,我电脑上的几个iso貌似那个“CD001”的tag不在那几个地址。mp4理论上能检测常见的一些内部格式,mp4内部格式支持的太多了。折腾了两天,数据格式,从模板到代码标题上面注释的data_info方...原创 2018-09-06 19:42:00 · 1927 阅读 · 0 评论 -
OpenGL 2D模式
//// left top 这里设置的默认是左上角//void push_view2d(int left, int top, int width, int height){ //glPushAttrib(GL_TRANSFORM_BIT|GL_VIEWPORT_BIT); glPushAttrib(GL_ALL_ATTRIB_BITS); glMatrixMode(GL_PROJE...原创 2018-08-31 20:13:36 · 1691 阅读 · 0 评论 -
c++ delegate 最大16个参数,用程序生成的代码
读这篇文章的前提是,我们使用的编辑器对c++11的支持不太友好。下面是测试代码:#include <stdio.h>#include <stdlib.h>#include "delegate.h"using namespace std;class test{public: void func() { printf("test...原创 2017-02-16 04:58:34 · 296 阅读 · 0 评论 -
任意数据长度的bitset,以及按位读写数据的函数
如果没有定义过byte_t类型:#include <stdint.h>typedef uint8_t byte_t;//typedef unsigned char byte_t; //1个byte字节,8位,一般系统中能表示的最小字节数据。uint32_t bit_set(byte_t* data, size_t x, size_t bits, uint32_t val...原创 2017-02-04 07:26:45 · 3221 阅读 · 5 评论 -
c++ 字符串分割函数stringsplit
新版: /* stringsplit.hpp sdragonx 2006-06-16 00:43:16 revise 2018/7/28 19:42 function list: size_t stringsplit(container, const char_type*, size_t, char_type, bool) size_t stringsplit(conta...原创 2017-02-04 07:36:37 · 6735 阅读 · 0 评论 -
文件名匹配算法(windows下的[*?])
/* fn_compare.hpp sdragonx 2015-02-25 14:32:54*/#ifndef FN_COMPARE_HPP_20150225143254#define FN_COMPARE_HPP_20150225143254#include <string>#define _CGL_BEGIN cgl{#define _CGL_END }...原创 2017-02-04 07:44:02 · 1439 阅读 · 0 评论 -
c++编程中处理char和wchar_t的好工具
/* ttype.h sdragonx 2015-02-18 18:32:43 这个几个模版函数是为了处理ansi或unicode,使字符串值或者字符串函数能够在模版中使用 2018/7/26 23:20 ttype<char, char, wchar_t>::type //type is char ttype<wchar_t, char, wchar_...原创 2018-07-28 19:51:13 · 371 阅读 · 1 评论 -
两行代码让程序开机自动运行
/* autorun.hpp sdragonx 2018-02-19 16:27:13*/#ifndef AUTORUN_HPP_20180219162713#define AUTORUN_HPP_20180219162713#include <windows.h>#include "ttype.hpp"//之前文章里面有namespace cgl{nam...原创 2018-07-29 02:00:00 · 1231 阅读 · 0 评论 -
一个简单计算游戏fps的小工具
/* fps.hpp sdragonx 2018-01-08 06:31:24 //计算fps的小工具*/#ifndef FPS_HPP_20180108063124#define FPS_HPP_20180108063124#include <time.h>namespace cgl{int fps_stats(){ static int fps...原创 2018-07-29 02:04:25 · 2070 阅读 · 2 评论 -
动态二维数组
/* cgl_array2d.hpp sdragon 2006-10-08 22:26:44 创建二维数组的程序。array2d<T>::array_t是C的纯指针模式,一定要使用 delete_array2d<T>()删除。 由vector<T>创建的数组的效率要高一些*/#ifndef CGL_ARRAY2D_HPP_200610...原创 2018-08-20 13:35:25 · 576 阅读 · 0 评论 -
再谈用c++实现property,不明白那些委员会是干嘛吃的。
参阅了一些文章,做了一个vc、cb、gcc通用的property声明宏函数,经cb和devcpp测试通过,release版本的效率没有损失。真不明白c++委员会是干嘛吃的,整天搞那个标准库,却不肯扩充基本功能。面向对象的类的三个操作:方法、属性、事件,其中属性就不肯提供编辑器支持标准,cb和vc多少年前就支持了,不是c++做不到,只是编程过程中,那些get()和set()之类的操作函数既不美观,书写也费劲,整体看起来,括号()太多了!原创 2015-03-06 19:43:55 · 1628 阅读 · 1 评论