2010年12月7日
by trueman
0 comments
介绍建立开发环境,一步步建立第一个例程。 什么是插件? 心血来潮,像做个firefox的插件开发。 弄了整整一天,终于有了模糊的概念。 firefox扩展应用分:Extension和PlugIn 以我的理解:Extension相当于一个可以执行Javascript的脚本;PlugIn相当于利用firefox的API接口的程序。所以,一个是本体的延伸;另外一个是独立的个体。 这里我是想学习Plugin。因为Javascript不会,感觉PlugIn更强大一些。 开发环境的建立 这里又一次感到了java的强大,好像可以直接使用一个叫netbeans的IDE+编译器+foxbeans插件,直接开始类似MFC的有向导的操作。我绕了个大弯子,才发现C/C++可能不能这么实现。这里也提醒大家一下。 我的目标是建立一个C\C++的集成开发环境。查了一堆资料,大多不靠谱,官方资料当然最可靠,感觉也有错误。下面是两个比较好一点的入门材料。 Compiling The npruntime Sample Plugin in Visual Studio:https://developer.mozilla.org/en/Compiling_The_npruntime_Sample_Plugin_in_Visual_Studio Firefox插件开发(5)——编译和测试第一个Plugin例子:npruntime:http://dev.firnow.com/course/3_program/c++/cppjs/20090924/177020.html 最需要阅读的是plugins API和使用入门。这是一个相当长的文档,如果看完所有的内容会花费大量的时间而且还会很晕,这里列一些重点供参考。 从这里http://developer.mozilla.org/en/docs/Gecko_SDK下载正确的版本SDK,并进行安装。说是安装,实际上就是解压缩到一个目录中,将SDK的路径加到环境变量path里面,比如我的路径D:\firefoxPlugin\xulrunner-sdk\bin。注意:为了方便,我们常常用这个目录作为工作目录,建立的位置要注意下。(版本1.9.2不行,缺少头文件,可以用1.9.1) 可以用VC进行开发,版本支持好像挺多的。我用了VC6。其他版本稍有不同,见上边的官方文档。建立一个插件的工程步骤如下: 在VC6中新建一个Win32 Dynamic-Link Library工程,取名“nprt”。注意:建议工程以小写np开头,并且长度不超过8个字符,这样以后就会省事很多。 下一步,选择“An empty DLL project”,然后“Finish”。 打开Project Settings,转到Project Properties|(all configurations)|C++|标签页,进行一些设置: 在 General| Preprocessor Definitions 中最后面添加 : ,XP_WIN32,MOZILLA_STRICT_API,XPCOM_GLUE,XP_WIN,_X86_。 在Preprocessor |Additional Include Directories下面添加XULRunner SDK的include路径,可以是绝对路径,也可以是相对路径,看你当初怎么解压的了。例如:(example : C:\xulrunner-sdk\sdk\include) 在Precompiled headers|Create/Use precompiled header中关闭预编译头文件:Not using precompiled headers。 [...]
编程
2010年12月7日
by trueman
0 comments
如果机子上装了Visio2007,在VC6.0中的“FileView”右键点“add files to folder”或者在Project菜单点Add to project –Files或打开文件都会报出异常 或 点了一点反应都没有。 2种解决方案: 1. 卸掉Visio2007或Office2007即可; 2. 去微软那下个FileTool的dll,作为插件添加进VC,然后删除原来VC自己的打开文件和添加文件到工程(http://support.microsoft.com/kb/241396/zh-cn) 微软支持网站提供了解决方案 1、在下面的网站下载FileTool.exehttp://support.microsoft.com/kb/241396/en-us 2、FileTool.exe是个自解压文件,执行它,解压到某个目录下 3、解压后的文件是一个VC工程,在VC6中编译它 4、把编译生成的动态连接库文件FileTool.dll拷贝到C:\program files\Microsoft Visual Studio\Common\MSDev98\AddIns 5、重新启动VC6,工具->定制->附加项和宏文件选中FileTool Developer Studio Addin,关闭对话框 6、现在工具栏会出现两个新按钮以后用这两个按钮执行添加和打开文件就可以了。 重新打开VC6,工具栏里面出现了这个可笑的图标。
编程
2010年10月16日
by trueman
0 comments
release 和 debug. VC 6.0菜单中"Build\Set active config…"中,原来选择是"release",改为"debug"即可!
编程
2010年10月15日
by trueman
0 comments
VC里CString是我们最常用的类之一,我们觉得对它很熟悉了,可是你知道它的所有用法吗? 还是系统的学习一下吧,认真看完本文就OK了。 下面开始: CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" ); CString s2( "abd" ); ASSERT( s1.Compare( s2 ) == -1 ); ASSERT( s1.Compare( "abe" ) == -1 ); CString::CompareNoCase int CompareNoCase( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 [...]
编程
2010年10月15日
by trueman
0 comments
MFC类 CStringMFC的CString含有TCHAR,它的实际字符类型取决于预处理标记的设置。通常,CString象STL字符串一样是不透明对象,只能用CString的方法来修改。CString比STL字符串更优越的是它的构造函数接受MBCS和Unicode字符串。并且可以转换为LPCTSTR,因此可以向接受LPCTSTR的函数直接传递CString对象,不必调用c_str()方法。 // 构造 CString s1 = "char string"; // 从LPCSTR构造 CString s2 = L"wide char string"; // 从LPCWSTR构造 CString s3 ( ‘ ‘, 100 );// 预分配100字节,填充空格 CString s4 = "New window text"; // 可以在LPCTSTR处使用CString: SetWindowText ( hwndSomeWindow, s4 ); // 或者,显式地做强制类型转换: SetWindowText ( hwndSomeWindow, (LPCTSTR) s4 ); 也可以从字符串表加载字符串。CString通过LoadString()来构造对象。用Format()方法可有选择地从字符串表读取一定格式的字符串。 // 从字符串表构造/加载 CString s5 ( (LPCTSTR) [...]
编程