自制导入DLL用的LIB文件

调用DLL早不是什么新话题了。从LoadLibrary和GetProcAddress配合使用的动态加载,到链接导入LIB的静态加载,方法很多。LoadLibrary和GetProcAddress的方法虽然麻烦但是很通用,毕竟调用系统API就可以了,DLL名和函数名和都是字符串形式。导入LIB方式的话,生成DLL的时候会带一个LIB给你,拿来用即可。

后一种方法很方便。这里主要也是讲后一种。

继续阅读自制导入DLL用的LIB文件

在百度知道上浪费的人参……

觉得很无聊很空虚,想刷点存在感,想获得一些称赞,大概是开始玩百度知道的原因吧。

到现在为止,1037的采纳数,76%的采纳率,不知道投了多少人参上去。得来的物质上的,貌似也就只有一个4G的闪迪优盘、一对漫步者USB供电音箱,以及某些网友给的一些酬金吧。虽然确实有遇上惊喜。

找了找,把其中一些对初学者可能有帮助的,或者可能引领初学者入歧途(喂!)的东西,列出来。因为回答数实在太多了,临时想找哪个有点难找。

VC6MFC单文档,GDI+加载以资源形式存在EXE中的PNG图片并显示
http://zhidao.baidu.com/question/679888978915970892.html

API,调用GDI+显示JPG图片,不直接引用GDI+的头文件和库
http://zhidao.baidu.com/question/559451292687816764.html

VC6,MFC单文档,工程使用Unicode编译
http://zhidao.baidu.com/question/1690138823277150748.html

C#使用scanf和printf
http://zhidao.baidu.com/question/1493910399025633699.html

API,控制台读取原始输入(不用回车
http://zhidao.baidu.com/question/1302038457159464899.html

误导初学者的窗体绘制(GetDC、ValidateRect),PeekMessage控制循环
http://zhidao.baidu.com/question/239514627930323244.html

VC6,MFC对话框,硬生生地把框架改了,变更对话框的运行方式由模态改为非模态
http://zhidao.baidu.com/question/1817754248793407668.html

调用MSXML的COM组件生成XML,几乎没使用Util类……
http://zhidao.baidu.com/question/1603754618198172107.html

C#使用指针方式像C调用fread那样读入一个double数组
http://zhidao.baidu.com/question/679887972870049412.html

C#,窗口绘制动画效果
http://zhidao.baidu.com/question/623769969880808124.html

使用Picture控件显示自己的绘图
http://zhidao.baidu.com/question/751577345044752684.html

C# UDP P2P聊天软件,窗口多线程管理,托盘通知图标用队列
http://zhidao.baidu.com/question/198396697303598845.html

和上一个一样,不过这个是单线程的
http://zhidao.baidu.com/question/1573601760932158060.html

C# TCP 聊天软件(服务器转发型)服务器端,多线程
http://zhidao.baidu.com/question/623384064449050764.html

EasyX库和API一起用来搞窗口
http://zhidao.baidu.com/question/615675896645640292.html

Windows管道和共享内存的进程间通信,全用匿名HANDLE、继承方式传递
http://zhidao.baidu.com/question/1987815188193968067.html

Windows下使用内存映射文件,朴素字符串匹配(文件内容查找)
http://zhidao.baidu.com/question/1859683786174250867.html

四则运算表达式的解析和解释计算,以及编译计算(JIT)
http://zhidao.baidu.com/question/1110099820559411499.html

浮点数的二进制表示
http://zhidao.baidu.com/question/1430100495056721579.html

Win32 API,电子钟(指针式和数字式都有)
http://zhidao.baidu.com/question/1881746594204704668.html

使用Hook方式在某热键出现的情况下获取编辑框中选中的文字
http://zhidao.baidu.com/question/1731479450533449907.html

调用API创建快捷方式
http://zhidao.baidu.com/question/1881412521562861508.html

调用MSXML COM组件解析XML,仍然是几乎没有用Util类
http://zhidao.baidu.com/question/1957133298378414300.html

GdiPlus,绘制旋转的文字
http://zhidao.baidu.com/question/589306436.html

在跑窗口的线程里延时(不是Sleep)
http://zhidao.baidu.com/question/588425745.html

再往前的问题居然百度不给看了。只给看到31页。​

自制编译型表达式计算器

起因是这个问题

http://zhidao.baidu.com/question/1110099820559411499.html

因为当时我编译原理课根本没有好好听,所以就决定尝试一下自己写这样的东西能写成什么样。

虽然写出来了,不过貌似没有满足,然后就进行魔改。

下面的代码是魔改的结果,能蛋疼成这样,我实在无话可说了……(死鱼眼

输入一个表达式,然后这个程序能计算它的值。支持加减乘除和括号,只支持整数,表达式中不能含有空格

注意:不能在“数据执行保护(DEP)”环境下执行。VC链接的时候不能带/NXCOMPAT选项,系统设置里也不能用“为所有程序启用数据执行保护”。

继续阅读自制编译型表达式计算器

尾递归和编译器优化

从最早学C语言的时候接触递归的时候就写过递归函数了。什么从1加到100,算阶乘等等。不过因为递归的函数调用操作要浪费不少时间,加上写起来也没习惯,就不怎么爱用。

最近稍微接触了一点Haskell这种函数式编程语言,然后就又想起C语言的递归了。之后在C语言里也尝试了Haskell里那样的写法。有说“尾递归可以转变为循环”,似乎编译器优化也是这么做的。但是自己在尝试的时候却没发现它变成了循环。

继续阅读尾递归和编译器优化

现在域名是 blog.sorayuki.net ~