Go语言调用C

Go语言十分简单,跨平台,非常适用于网络应用的开发,本人相当看好。不过很多时候,还是需要扩展Go让Go实现更多的功能,如操作底层硬件、创建窗口等,这个要求可以通过调用C的方式实现。 本文以windows下的Go开发为例,linux完全一样。当然,Windows上首先要安装MinGW. http://www.hoverlees.com/blog/?p=1465 先做一个GO显示一个对话框窗口的简单示例。在go目录src/pkg下新建一个文件夹名为hover,新建一个hover.go文件,内容如下 与其说这是一个go源码文件,还不如把它理解成C语言的模板文件,cgo编译时,会把这个文件的内容转换成C程序并使用gcc编译,所以本人强列推荐将这个程序当成C程序阅读。程序中第二行的注释会在转换成C语言时做为C的代码。Msgbox会调用Windows系统函数MessageBox,并传入对应参数。由于go的数据类型与C语言的数据类型在内存中的表示不同,所以需要转换。Go与C的数据类型对有对应的转换方式,具体可以参看文档。因为MessageBox的第二第三个参数是LPSTR(unsigned char*),所以在调用时需要将Go的string转换成LPSTR类型。 接下来编译和安装函数包: 编译完成后,可以在程序中import这个hover库。下面写一个简单的程序调用刚刚写好的函数 最终生成的程序会弹出一个对话框,标题和内容都按程序指定的显示。

C#为什么要叫C#(C sharp)

我想很多使用C#的朋友,没有想过它为什么要叫C sharp吧。我不使用C#,而且一直故意会读它“C井”,很多用C#的朋友都会向我纠正,说它读C sharp,但我反问他们为什么叫C sharp的时候,他们又不知道,或者想都没想过。 当然啦,我这也是无聊,说说我的想法。回想C++名字的来源,首先,它是C的升级,而且当初使用了C的运算符号++,表示它是C的提升,那么C#呢,有很意思的是,C在音乐中,表示我们的“哆”音,例如频率261.6HZ的中央C。#号在音乐中表示升调,Sharp就是尖锐的意思嘛,所以C#就是C的升调,跟C++的起名有异曲同工之效。

IP归属地数据库,附带C,PHP访问代码

最近有打算给博客做个统计插件,看看都是哪儿来的朋友在看我的博客儿,需要一个详细的IP地址归属地数据库。网上找了个纯真的MySQL版的,30多万条数据占了20M左右的数据库空间,觉得有点浪费数据库空间,而且数据库查询时间太慢,特别是要一次性查多个结果时,更是不得了.最主要的是这种应用场合不适合做成数据库形式的。 所以就准备自己做数据库了,自己也有50000亿条数据的数据文件的设计经验。这才30多万条没什么问题。。。按自己的想法生成了文件,并写了PHP和C语言的访问API,心情好的时候再补写上Java啊,汇编啊什么的API也是挺好的。 数据库下载:GBK版 UTF8版 PHP API(函数):这个是函数形式的PHP代码,博客版面上是写描述,具体代码在这里:ips.php ip_area.php 代码调用示例: