
C/C++
lsldd
这个作者很懒,什么都没留下…
展开
-
不定参数函数的原理及应用(转)
概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n) ((sizeof(n)+si转载 2009-07-24 14:19:00 · 2783 阅读 · 0 评论 -
VS2012发布到XP平台
默认情况下,你的VS2012工程发布后,在XP下运行会出现提示“not a valid win32 application”。 微软推出了Visual Studio 2012 update 1可以支持发布到XP平台,这个更新好像只能在线安装,比较麻烦.然而就算你打了补丁,你的程序在XP下可能还会出现“无法定位程序输入点 FlushProcessWriteBuffers 于动态链接库 K原创 2013-04-18 21:12:14 · 6985 阅读 · 2 评论 -
Tessellation Shader的GLSL入门实现: 平面
此文续http://blog.youkuaiyun.com/lsldd/article/details/8794823这次来看一看如何细分一个平面(quads)对于quads细分算法而言,需要传递6个细分参数:4个Outer和2个Inner。每个参数控制的细分如下图所示。out1:控制四边形左边、外侧的细分数量。上图为1.out2:控制四边形下边、外侧的细分数量。上图为2.ou原创 2013-05-22 11:06:41 · 4404 阅读 · 0 评论 -
VS2012中使用CEGUI项目发布到XP平台的问题
接着上一篇文章,详细说说如何把一个带CEGUI的项目发布到XP平台。这个问题纠缠了我好几天。这里把详细解决思路记下来。有同样问题的朋友可以少走很多弯路。核心方法就一句话。“你项目使用的所有外部依赖库都用/MT编译。”1.准备。首先你要具备如下工具:CEGUI源码;FreeType源码;Pcre源码;CMake工具。我会在下文说明原因。各个开源库的版本号,请参考你的CEGUI引用原创 2013-05-14 21:42:00 · 2526 阅读 · 0 评论 -
C++里Ofstream写文件的中文问题
说实话,这个问题很早就遇到,但是一直没有搜集比较完备的解决方法。这次把问题和解决方法都记录下来,以备来日查阅。问题1:中文路径问题导致文件打开失败。通常是因为在调用fstream的open方法时,系统内部调用mbstowcs_s进行文件名转换,而mbstowcs_s依赖于程序的本地化设置(locale系列函数设置)。程序启动时默认设置为LC_ALL="C"。而要正确打开中文文件名的文件原创 2013-03-05 13:55:07 · 17226 阅读 · 2 评论 -
模拟退火算法解旅行商(TSP)问题
该帖子的代码主要转自[模拟退火算法]1 该文对模拟退火算法作了较好的分析,不过该文中举例的TSP的代码有一些问题,我对此作了修正,并在文中最后做出解释。 代码如下:#include <iostream>#include <string.h>#include <stdlib.h>#include <algorithm>#include <stdio.h>#include <time.h>原创 2015-12-18 17:04:19 · 9204 阅读 · 5 评论 -
Opencascad 7.0编译问题
opencascade编译问题原创 2016-09-01 14:37:06 · 2971 阅读 · 2 评论 -
Opencascad中Cut操作与Location变换的关系
正常Cut情况B物体发生位移情况A物体发生位移情况原因分析解决思路在实体建模算法中,Cut操作属于典型的Bool运算。入门教程详见: http://www.cppblog.com/eryar/archive/2013/01/17/197357.aspx 然而,如果Cut操作的对象本身的Location(即本身的坐标系)发生过变换,会发生什么问题呢?正常Cut情况下面以一个例子做说明。原创 2016-09-02 10:39:06 · 1960 阅读 · 0 评论 -
面试题:快速计算1亿内所有整数的最大奇因数和
求1到n(n为1亿)内所有整数的最大最大奇因数和原创 2016-09-17 19:11:02 · 3229 阅读 · 0 评论 -
整理下微软编译器整的宏(未完成)
_MSC_VER 定义编译器的版本,VC6就是1200 #if _MSC_VER > 1000的意思就是如果编译器版本高于1000(VC++5.0) #pragma once#pragma once当在别的实现文件里包涵这个.h文件是只编译一次,只包含一次! __superMFC中的这东西我没找到在哪里定义的,貌似表示自己的父类?int原创 2009-08-24 15:55:00 · 1616 阅读 · 1 评论 -
windows程序中拷贝文件的选择
最近需要在Windows下拷贝大量小文件(数量在十万级别以上)。写了些拷贝文件的小程序,竟然发现不同的选择,拷贝的速度有天壤之别!现有这样的测试数据:1500+小文件,总大小10M左右。现用不同方法进行拷贝。:方案1:调用SHFileOperationBOOL CUtility::CopyFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)原创 2012-11-16 17:27:15 · 2349 阅读 · 0 评论 -
WGS84坐标与Web墨卡托坐标互转
在WebGIS的开发中经常用到的地图投影为Web墨卡托和WGS84,故歌地图,bingmaps,百度地图,mapabc,mapbar,以及ArcGIS online上的大部分地图为Web墨卡托地图,ArcGIS online上最开始发布的地图投影为WGS84。在开发过程中很多时候会遇到不同坐标系之间互转的问题,特别是底图使用Web墨卡托,定位(GPS,wifi等)信号坐标为WGS84坐标的时候转载 2012-10-21 16:12:08 · 12478 阅读 · 5 评论 -
String,CString,TCHAR,char之间区别和联系
char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底是char还是w_char;TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII的字符#ifdef UNICODE typedef wch转载 2009-08-05 15:53:00 · 7501 阅读 · 1 评论 -
给VS2005的编辑器添加右边界线
给VS2005的编辑器添加右边界线 好的代码风格是生成高质量软件的基础,其中有一点就是代码的每行不能太长,一般建议每行不超过80个字符。VS2005里面有个隐藏的功能是可以设置编辑器的边界线。创建一个VS2005_Guideline.reg文件,内容为:Windows Registry Editor Version 5.00[HKEY_CURRENT_USER/Software/Micro转载 2009-08-04 19:59:00 · 1392 阅读 · 0 评论 -
C++字符串拷贝与缓冲区溢出
对于常用的字符串拷贝函数,常用的有:Ansi版本如下:strcpy, strncpy, strcpy_s, strncpy_s, StringCbCopyUnicode版本为:wcscpy,wcsncpy,wcsncpy_s,wcsncpy_s,StringCbCopyW其中最后一个为Windows的API,其余为c运行时函数。这些函数完成的功能是一样的,然而本质上却有极大原创 2009-10-14 15:54:00 · 8879 阅读 · 2 评论 -
VS2008安装失败解决方案(转)
在实际的vs2008安装过程中,发现安装到一定的时候出现错误,导致安装无法继续进行。经过上网查询相关解决方案,成功解决了这个问题,逐将解决过程与大家分享。 显示的错误界面如下图所示: 解决方案: 在VS2008安装光盘下找到.../WCU/WebDesignerCore/WebDesignerCore.exe并将其复制到硬盘上其他目录下(不在VS2008转载 2011-06-22 11:57:00 · 2637 阅读 · 0 评论 -
.c文件和.cpp文件导致的编译问题
今天在编译OpenGL红宝书附带源码中的light.c文件时遇到一个诡异的问题:如图light .c,在不做任何修改的情况编译OK。然而只要在某些地方写了可执行代码,则会无法通过编译器编译!(这几行代码如果写在main函数里的第一句则OK)我用的VS08.我把该文件发给其他朋友(用的VS10),同样也是这样的问题。然而,我把文件名改成light.cpp后,问题解决了。原创 2011-10-20 16:09:36 · 6399 阅读 · 4 评论 -
直线与三角形相交
bool GeometricTools::intersect(Vector3f ray_o, Vector3f ray_d, Vector3f tri_p0, Vector3f tri_p1, Vector3f tri_p2, Vector3f& res){ flo原创 2012-03-07 20:02:28 · 1731 阅读 · 0 评论 -
WorldWind编译问题汇总
前提:已经安装DirectX91:打开WorldWind.sln,设置启动工程为PluginSDK。2:把World_Wind_1.4.0_Source\BIn\Debug下所有文件copy到World_Wind_1.4.0_Source\WorldWind\bin\x86\Release3:开始编译。会发现很多字符串相关的语法错误。里面的语法错误其实是文件编码的问题引原创 2012-03-31 18:32:59 · 3917 阅读 · 2 评论 -
快速幂取模算法
参考文章来源:Reait Home(http://www.reait.com/blog.html) 转载请注明,谢谢合作。 在Miller Rabbin测试素数,就用到了快速幂取模的思想。这里总结下。求a^b%c(这就是著名的RSA公钥的加密方法),当a,b很大时,直接求解这个问题不太可能 算法1:利用公式a*b%c=((a%c)*b)%c,这样每一步转载 2010-04-20 14:46:00 · 39742 阅读 · 10 评论 -
STL里list、vector、queue性能差异与疑似内存泄漏问题
最近在项目中debug退出后,VS的Output面板会输出大量内存泄漏的信息。经过排查,居然发现是使用了std::list的原因!然而通过MSDN上一些前辈的讨论,得知List并没有真正导致内存泄漏,而是VS本身的 _CrtDumpMemoryLeaks()函数的执行位置的问题。具体可以参考如下文章:http://social.msdn.microsoft.com/Forums/d原创 2012-08-12 17:08:09 · 17768 阅读 · 4 评论 -
N阶幻方入门算法及图解
幻方(Magic Square)1是一种将数字安排在正方形格子中,使每行、列和对角线上的数字和都相等的方法。 幻方有3种不同解法,分别对应于奇数阶, 4*m阶,以及4*m+2阶。 注:部分代码来源网络2奇数阶幻方解法《射雕英雄传》中,英姑对黄蓉说:“你算法自然精我百倍,可是我问你:将一至九这九个数字排成三列,不论纵横斜角,每三个字相加都是十五,如何排列?” 黄蓉当下低声诵道:“九原创 2017-03-05 19:20:48 · 11017 阅读 · 4 评论