图形编程forc吧
关注: 14 贴子: 295

讨论基于C/C++的绘图和游戏程序的设计

  • 目录:
  • 程序设计及人工智能
  • 4
    根据上一篇关于libjpeg的dll编译一文,将手里以前下载的libjpeg-turbo 1.4.90项目中解码器部份提取出来,生成了静态库和动态库,通过了msvc和mingw编译,对图片进行解码测试,没有发现有什么问题,速度还算不错,生成的Dll大概是108K左右。(1.5.3版在mingw下还有编译错误,和limits.h有关)
  • 22
    (测试是否能发出来) 0. 引言 DxLib 是一个日本人开发的库,光看名字可能以为这是一个辅助使用 DirectX 的库,但它实际上涵盖了许多方面的内容,如图像、声音、归档文件、网络、模型等,功能十分全面,适合新手使用。其官网地址为 https://dxlib.xsrv.jp/ 。据官网介绍,其支持的平台也很多,例如 Windows、Android 等。 1. 下载 DxLib 点击官网的 "DXライブラリのダウンロード",转到下载页面。这里可以下载对应平台用的库文件,如使用 VS 就选择 Visua
  • 2
    C/C++混合编程,编译后不依赖C++库。采用多线程进行目录搜索,除了界面,其它基本上都是手工代码。 链接: https://p a n.baidu.com/s/14TkYWL64yJYbfiowFpn-FQ 提取码: 293j
    Ayicing 12-23
  • 11
    一段时间没有玩C#了,正好机器里装了VS2015,所以又将Hash项目用C#实现了,在重写的过程中,发现了一个问题,就是取中文的hash值,大家都知道C#里的字符串string是unicode编码的,所以如果用c/c++的方法去计算字符串的Hash值,就会发现英文的话没有问题,中文的话运行值和C/ C++不同,然后查了一下C#的System.Text中关于字符编码的文章,最后用一个语句就解决了这个问题,如下: public override bool update(string s) { byte[] arr = Encoding.Default.GetBytes(s);//将utf-16转换成
    元冬 11-27
  • 3
    反复执行以下代码,其中CreateCompatibleDC有几率返回NULL,此时GetLastError = 0x6,但没找到哪里发生内存泄漏,应该都Delete了,且Delete返回均正常。
  • 4
    我们都知道IJG的这个著名的jpeg图像库,按照自带的说明编译,一般得到的是静态链结库LIB文件,网上多的是编译过程的文章,就不多说了,以6b版为例,如何生成一个jpeg.dll呢?估计大多数人找不到相关的资料。我也是摸索了一阵子,终于搞定了这个问题,将里面的解码部分的文件提取出来,经过Mingw的gcc编译,最终生成了一个59K的dll,可解base line和progressive的jpeg文件。
    hellovfp 3-2
  • 8
    原代码来自codeproject网上,国内的一个博士根据IGJ的jpeg库简写的代码,接口简单。我花了两天,对代码进一步进行了改进,进一步提升了解码速度。项目下载地址在二楼:
    hellovfp 2-12
  • 3
    一、代码注释统计问题,算是一个学习过程中常见的一个题目,在cnblog上也有网友弄了一段C++的统计代码,详见:https://www.cnblogs.com/nchar/p/3915889.html。我拿来编译了一下,gcc和vc可以编译,但vc的debug模式下,无法运行,有越界的异常抛出,其实博主关于这个问题的分析还是写得不错的,基本上该思考的地方都到了,但不幸的是,对于其它源代码的统计,明显是错的。 二、又顺手把以前的vckbase代码仓库里的一个代码统计和网上以前下的一个叫源代码智
    hellovfp 1-5
  • 6
    无聊,又研究了一下几种排序算法,在测速的时候,发现自己忘记了一个重要的问题,在某天看到有人在帖吧提到生成随机数只计数到32768就停止了,顺手查了一下C库函数的实现,才发现提供的只是0~32767之间的随机数,我去,图省力,直接用标准库去测试算法,实在是,以前自己弄过随机数C++类啊,居然没有拿来用,失算。重新查了一下一些随机数算法,挑了三个流行的常用算法,重新实现伪随机数生成算法库。通过msvc和mingw编译。 C示例: //random.h
    hellovfp 7-30
  • 3
    翻开C数据结构一书,第二章有一个经典的二分查找示例程序: typedef int ElementType; #define NotFound (-1) /* START: fig2_9.txt */ int BinarySearch( const ElementType A[ ], ElementType X, int N ) { int Low, Mid, High; /* 1*/ Low = 0; High = N - 1; /* 2*/ while( Low <= High ) { /* 3*/ Mid = ( Low + High ) / 2; /* 4*/ if( A[ Mid ] < X ) /* 5*/ Low = Mid + 1; else /* 6*/ if( A[ Mid ] > X ) /* 7*/ High = Mid - 1; else /* 8*/ return Mid; /* Found */ } /* 9*/ return NotFound; /* NotFound is defined as -1 */ } 提一个问题,如果有一个10大小的数组顺序存
    aaaaaaa421 7-28
  • 1
    受够了win8文件查找的不爽,只好自己实现文件和文本内容搜索,写好了主要算法结构,结果无意中在XP中测试时出现一个诡异的bug,在调试时,单步调试时,会在扫描文件函数调用时挂掉,但不调试,直接运行又能成功运行,在win8中又不存在这个问题,代码如下: class FileInfo { HANDLE hFind; typedef WIN32_FIND_DATAA finfo; typedef SYSTEMTIME ftime; public: finfo info; ftime time; ~FileInfo() { if(hFind!= INVALID_HANDLE_VALUE) FindClose(hFind);//不要二次调用,会引起死循环的 } //文件搜索 boo
    hellovfp 7-8
  • 0
    #include<stdio.h> #include "random.h" static char tab[] = "0123456789abcdef"; char * toh(char *p, int val) { if(val > 0){ p = toh(p, val >> 4); *p++ = tab[val & 0xf]; } return p; } // 递归写法 void tohex1(char *buf, int val) { char *p = toh(buf, val); if(p == buf) *p++ = '0'; *p = 0; } // 位移写法 void tohex2(char *s, int val) { int i = 28; //for(; i>0 && ((val>>i) & 0xf) == 0; i-=4); for(; i >=0; i-=4) *s++ = tab[(val>>i) & 0xf]; *s = 0; } // 位移写法的改进版 void tohex3(char *s, int val) { for(in
    hellovfp 6-15
  • 0
    经核实吧主魏子栋2004 未通过普通吧主考核。违反《百度贴吧吧主制度》第八章规定http://tieba.baidu.com/tb/system.html#cnt08 ,无法在建设 图形编程forc吧 内容上、言论导向上发挥应有的模范带头作用。故撤销其吧主管理权限。百度贴吧管理组
  • 1
    前段时间整理了一下项目代码,恢复了一下系统,发现vs2015的一个bug,以前写的对话框类在vs2015下编译失败,由于对话框需要theme支持,调用了INITCOMMONCONTROLSEX api,不论是否指定sdk里的comctl32.lib,系统始终无法链结上这个函数,这个真的很无语,同样的代码在其它版本或是mingw里完全没有问题。想起win32++项目是支持vs2015的,里面的对话框可以显示系统样式,查看了一下源代码,原来作者使用的是动态dll里直接调用这个函数来规避这个问题,晕。 由于对
    aaaaaaa421 3-26
  • 24
    无事,将前段时间写的C++版本的Hash算法库,改写成C语言版本,拿着函数指针大刀,一阵狂野的修改,生成的Dll比用C++的少2K,12K,然后又测试了tcc编译成dll,让人失望的是tcc生成的dll是15K, gcc生成的还要大,大概32K左右。。 编译备注:编译时需要定义HASH_EXPORT_DLL宏。 测试程序: #include <stdio.h> #include <string.h> #include "hash.h" int main() { const char* str = "hellovfp"; const char* types[] = {"crc32", "sha1", "md5", "adler32", &
    aaaaaaa421 2-17
  • 2
    以下代码实现了亚克力模糊效果(Win10 专属,可以改成普通的模糊),效果如图: #include <Windows.h> #include <stdbool.h> #include <stdint.h> #include <emmintrin.h>// For SSE2 //#define ARGB(a, r, g, b) (RGB(r, g, b) | ((BYTE)a << 24)) #define ARGB(a, r, g, b) (RGB(b, g, r) | ((BYTE)a << 24)) #define ColorBlend(clr1, clr2, clr1Weight) RGB(\ (GetRValue(clr1) * (clr1Weight) + GetRValue(clr2) * (255 - (clr1Weight))) / 255,\ (GetGValue(clr1) * (clr1Weight) + GetGValue(clr2) * (255 - (clr1Weight))) / 255,\ (GetBValue(clr1) * (clr1Weight) +
    aaaaaaa421 2-13
  • 1
    如今的时代,各式各样的大公司在窥探用户的隐私,进行定向的广告推送,我们的网络生活毫无隐私可言。为了维护自身的合法权益,坚持社会主义核心价值观,我今天准备向大家传播有关正确上网的知识。 1. 使用更安全的 https 如今的主流浏览器都已经支持 TLS 1.3 了,这无疑提高了不少速度与安全性。然而,它还有缺点:在连接服务器的时候,由于服务器需要辨识用户需要访问什么网站,浏览器会自动发送域名信息(称作 SNI),但 SNI 是明文发送的,
    hellovfp 2-13
  • 52
    //测试代码: #define CNT 3000 void test_console() { String s(L"I love my syster forevey!!!\n"); std::string s1("I love my syster forevey!!!\n"); double time1, time2, time3; Clocker clock; for(int i = 0; i < CNT; ++i) puts("I love my syster forevey!!!"); time1 = clock.elapse(); clock.restart(); for(int i = 0; i < CNT; ++i) console << s; time2 = clock.elapse(); clock.restart(); for(int i = 0; i < CNT; ++i) std::cout << s1; time3 = clock.elapse(); printf("puts use %.3f\n", time1); printf("write use %.3f\n", time2); printf
    aaaaaaa421 1-23
  • 5
    /** 本字符串功能为支持unicode Windows API软件类库而写, 提供了一些std::string没有的常用功能,如分割,格式化等。 大部分功能和标准字符串功能相同,使用差不多,代码短小,运行速度快。 格式化代码release编译运行速度比比C库sprintf函数要快4倍左右, 且没有写入出界问题 没有提供replace功能,意义不大,可以用删除加插入功能实现。 format支持格式: %c: 字符 %s: 字符串(仅支持右对齐) %d: 有符号整数 %u: 无符号整数 %o: 八进制 %b: 二进制 %x[X]: 16进制,X输出
    hellovfp 1-19
  • 8
    其实是给自己编的图形库disapp.h做的~ 由于每个像素确保只会被绘制一次,所以自带透明度比较容易啦~
    hellovfp 1-18
  • 6
    由于需要把自己写的三个hash算法类库化,想生成Dll以供后期程序调用,经过一翻测试,发现和C生成DLL还是有差别,静态链结没有问题,一但想动态加载dll的时候,就会发现程序崩溃,经过调试,发现能取得dll的函数,返回的接口也是正常的,调用算法方法时正常,但在调用toSring方法时,就挂了,显示std::string的 Alloc类调用失败,我去,难道不能动态加载,只能静态用? 通过使用Depend软件查看dll的关联性,还发现一个错误,提示关联的msvcp90.dll丢失,
    hellovfp 11-7
  • 0
    主要改进:相比于源代码的221行,进一步缩短代码,没有了源代码大理的强制转换,接口统一成上一篇 sha-1样式,去掉了大理的宏定义,所有代码不调用C库函数,直接算法版实现。纯算法版本。 //md5.h #include <string> #ifdef _MSC_VER #if _MSC_VER < 1600 typedef unsigned int uint32_t; typedef unsigned char uint8_t; typedef unsigned __int64 uint64_t; #else #include <stdint.h> #endif #else #include <stdint.h> #endif /** * 功能:md5散列算法C++实现 * 作者:hellovfp * 时间:2019.10.16 * 最后修改
    hellovfp 10-18
  • 6
    以下编译器都是楼主亲自测试过的,确保无毒无害无插件无副作用。 从二楼开始是各编译器的下载地址。 由于地址可能会变动,因此地址也以回复形式发。地址无效后,我会在回复中更新地址,同时删掉无效的地址。 注: 1. 有任何疑问,请发新帖,不要在本帖回复。本帖会定期删除所有无关回复。 2. 如果某个资源无效了或者还有什么编译器需要楼主扩充的,可以在本帖回复提醒楼主。
  • 0
    参考了rfc3174上的代码和网上某些代码,重写了sha1算法实现,可以计算大文件的hash值,通过64位编译测试,接口简单,代码进行了注释,gcc编译测试通过。 #include <cstdio> #include <string> #ifdef _MSC_VER typedef unsigned int uint32_t; typedef unsigned char uint8_t; typedef unsigned __int64 uint64_t; #else #include <stdint.h> #endif #define SHA1_MAX 2305843009213693952L class Sha1 { uint64_t _size; uint32_t _hashs[5]; uint8_t _block[64]; short _index; public: Sha1(){ init();} ~Sha1(){} void init() { _hashs[0] = 0x67452301; _h
    hellovfp 10-10
  • 8
    无聊,写了一下unicode的string实现。 //删除,插入,查找,替换,取子串, Trim, 迭代器 // 还差 替换和 char转换unicode, char或许是utf-8, int 和保留功能有点重合 class String { typedef struct _format_args { int prec; int width; wchar_t fill; }_fargs; public: String() :_size(0), _capacity(_size+1), _data(new wchar_t[_capacity]) { *_data = L'\0'; } // 容器需要 String(const String& rhs) :_size(rhs._size), _capacity(_size+1), _data(new wchar_t[_capacity]) { _copy(_data, rhs._data, _size); } String(const wchar_t *str) { for(_size = 0; str[_si
    hellovfp 8-13
  • 12
    下面两个均原创,你们觉得哪个好
  • 32
    比较散,有问题我会尽可能的去补充
    hellovfp 6-14
  • 2
    人生中第一次成功申请的贴吧好开心(●°u°●)
  • 0
    亲爱的各位吧友:欢迎来到图形编程forc

  • 发贴红色标题
  • 显示红名
  • 签到六倍经验

赠送补签卡1张,获得[经验书购买权]

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!

本吧信息 查看详情>>

友情贴吧