两年多以前本人发布了一款语法编辑软件LiteEdit,得到了很多朋友的支持,很多人要求我公布源代码,经过我考虑再三决定公布其中的编辑控件PfxEditCtrl。这是一款全面支持中文的编辑控件,使用标准的MFC DOC/VIEW机制,使用比较简单,但功能却很强大。PfxEditCtrl由两个主要的类组成,包括CPfxEditView和 CPfxEditDoc,这个控件主要支持如下功能:
文本编辑;
打印;
可通过语法配置文件定制的语法高亮显示;
自动换行;
支持非等宽字体;
列块选择/复制/删除/粘贴等列块方式编辑操作;
支持UNICODE/UTF8/UNICODE BIG ENDIUM/ANSI文件的打开,编辑,转换;
支持拆份成双窗口并列编辑;
[代码性质]
VC完整应用程序代码
[代码作者] 陈建初
[文件大小] 251K
[更新日期] 2005-11-11 12:06:00
[下载次数] 4537
--------------------next---------------------
最近在学习COM,这是我学习中写的一个小程序,程序实现了插件功能。程序可以通过安装的插件,进行简单的四则运算。
工程里实现了4个组件,PlugIn、Sub、Mult、Div。并且都具有ICalc接口。编译组件时,组件会自动注册,并且会建立一个新的组件类别A。然后将自己注册到新的组件类别A中。
客户程序通过ICatInformation接口来得到在该类别A中登记的所有组件的CLSID。然后再得到相应组件的ICalc接口,就可以调用ICalc接口中定义的函数了。
你也可以增加新的组件,但要保证新组件也制止ICalc接口,并把新组件在组件类别A中进行注册。就可以扩展客户端程序的功能了(不需修改客户端代码)。
测试本程序时,请先编译所有组件,并注册之。
多的就不说了,看代码吧!希望对你有作用。
[代码性质]
VC完整应用程序代码
[代码作者] kelp
[文件大小] 78K
[更新日期] 2005-11-5 12:48:00
[下载次数] 2678
--------------------next---------------------
1、在 2005 年一月刊的 MSDN 杂志文章中,你有一个例子程序的代码是用混合模式编写的。有没有可能动态加载 .NET 类或 DLL 并调用那些函数呢?假设我有一个本机 C++ 应用程序,我想允许用户在 .NET 中为该 C++ 程序编写插件。就像在 .NET 中使用 LoadLibrary 加载 DLLs 一样。
2、我正在用 Visual C++ 6.0 编写一个插件应用,它是一个 DLL,输出和接收纯虚拟接口指针。加载 DLL 后,EXE 便调用 DLL 中输出的 C 函数,该函数返回一个纯虚拟接口指针。然后 EXE 调用该接口上的方法,有时会传回另一个接口指针给 DLL 处理。
目前有人要求必须用 C#,Visual Basic .NET 和其它语言编写插件。我没有什么基于 .NET 的编程经验,不懂托管和非托管代码之间的通讯问题,我找到许多有关这方面的信息,但是越看越糊涂。我如何才能让用户编写基于.NET 语言的插件?
[代码性质]
VC可重用代码段
[代码作者] Paul DiLascia
[文件大小] 279K
[更新日期] 2005-9-27 19:36:00
[下载次数] 3983
--------------------next---------------------
上回书介绍了回调接口,在此基础上,我们理解连接点就容易多了。
着好复杂呀......呵呵,其实简单的紧:(注1)
1、一个 COM 组件,允许有多个连接点对象(IConnectionPoint)。
也就是说可以有多个发生“事件”的源头。上图就有3个连接点;
2、管理这些连接点的接口叫“连接点容器”(IConnectionPointContainer)。
连接点容器接口特别简单,因为只有2个函数,一个是 FindConnectionPoint(),表示查找你想要的连接点;另一个是 EnumConnectionPoints(),表示列出所有的连接点,然后你去选择使用哪个。在实际的应用中,查找法使用最多,占90%,而枚举法使用只占 10%,一般在支持第三方的插件(Plug in)时才使用。(你想写个 IE 的插件吗?我们后面就要讲到啦)
3、每一个连接点,可以被多个客户端的接收器(Sink)连接;
这个我们已经熟悉啦,还记得我们在上回书中为了管理多个回调接口,使用了 cookie 的方式进行区别吗?!
[代码性质]
VC完整应用程序代码
[代码作者] 杨老师
[文件大小] 79K
[更新日期] 2005-9-20 12:53:00
[下载次数] 6251
--------------------next---------------------