- 博客(7)
- 问答 (1)
- 收藏
- 关注
原创 C++ 到 Java 再到 C++
最近把公司项目的一个消息插件换成JAVA,要在C++层调用java,在java里面会有自身的回调,然后我想在这个回调里面调回到我的c++代码里面。 之前做过C++到C#之间的调用,拿一套语法很复杂诡异,我以为C++和JAVA之间的互相调用也很复杂,等我搞定之后,发现,简直方便快捷。 下面说一下步骤。 1,我用的是VS2010,安装了JDK1.8。 2,要写一个JAVA类,如下。package
2016-10-25 18:48:55 400
原创 dll中的内存分配调试
最近终于把每次程序退出的时候,一大堆的内存泄露LOG的问题解决了。在说这个问题之前,先分析一下DLL中的内存分配,说到DLL的内存分配,先说说windowsDLL编译。在VS上编译的时候,有MT,MD之分,后面再加个D指的是debug版本。那么这两个版本,有什么区别。区别是,MT会把windows下的运行时依赖的库,静态的联编到DLL中,而MD是动态的连接。那么这两个会导致的区别就是,MT编的D
2016-10-18 16:23:19 1104
原创 windos下的内存分配
最近封装DLL库,发现程序推出的时候总是会有一些LOG,显示部分内存没有回收。调试发现,这些没有回收的内存不是我的代码的逻辑造成,而是和DLL的一些特性相关。然后研究了一下,windows下的内存分配的相关知识。crtd__malloc_dbg 是debug模式下,NEW操作实际调用的函数,这个函数会分配内存,但是你NEW出来的内存会被包装一下,下面的这个结构体就是用来包装的。typedef
2016-10-12 11:01:33 280
原创 Delaunay 三角剖分 和 Voronoi diagram(泰森多边形)
首先看一下 Delaunay 三角剖分。在计算机几何图像显示上,为了追求效率,GPU只会绘制三角形。opengl 在绘制凸多边形的时候,也是简单的将多边形化成三角形在渲染。当你给的是一个凹多边形的时候,问题就出现了,OGL渲染的不对。这个时候,我们就要把数据自己处理成成一个个三角形,这里就要用到三角剖分。首先看广义的三角剖分:三角剖分[1] :假设V是二维实数域上的有限点
2016-09-09 15:24:30 2544
原创 SDL 在 MFC 框架下的鼠标样式设置失效
今天,用了一下SDL的鼠标样式,先是在win32下,初始化窗口之后,SDL_Cursor* tmp;tmp = SDL_CreateSystemCursor(SDL_SYSTEM_CURSOR_HAND);SDL_SetCursor(tmp);SDL_SetCursor(NULL);运行没有问题,然后我在MFC下,同样的代码,同样的逻辑,发现不成功。然后跟进到源码中,有
2016-09-02 14:34:03 1062
原创 CSplitterWnd 控件的特性
最近,调UI,发现 CSplitterWnd 这个控件的特性,很有意思。先贴点它自绘的源码。void MyCSplitter::OnDrawSplitter(CDC* pDC, ESplitType nType, const CRect& rectArg){if (pDC == NULL){RedrawWindow(rectArg, NULL, RDW_INVALIDATE
2016-08-24 16:22:28 621
原创 CSplitterWnd 和其他 UI 交互的问题
最近项目写一个夸平台的控件,使用了 SDL 管理MFC的视图,渲染的部分是opengl渲染,发现opengl渲染的部分,当 CSplitterWnd 的分隔条滑动的时候,会把opengl渲染的擦掉,露出视图的底图来,然后调试发现,拖动分隔条,当opengl在view的onpaint里面渲染完了之后,CSplitterWnd 会重绘边框,当边框重画完的时候,同样,opengl渲染的部分也没了,露出了
2016-08-23 13:56:06 271
空空如也
void * 到 char * * 怎么可能这样写,
2015-12-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人