在开发MapInfo的程序中,涉及到使用外部提供的OLE组件,有以下几点需要在这里总结一下一下子:
一,对于MapInfo里面自己带的例子。里面的C++的几个例程,由于里面的ActiveX控件是以前的工程建立时的,可能由于当时注册的方式和现在有区别,所以对于里面对话框里面的Dll组件,如果出现了以下错误提示:The Activex can not be instantiated,那么就是说明,这是控件加载出了问题,所以最好就是先删除以前的控件,然后再自己通过Butoon click->insert ActiveX control来手动重新添加控件,但是要注意的是,控件添加过后,控件的ID必须要进一样的。
二,调试的时候,出现了no matching symbolic information found这样的错误,是因为:这是你的代码调用了系统的dll中的代码,而被调用的代码不是debug版本,所以没有包函调试信息在里面。调试器试图读取这些代码的调试信息时就只好报告没找到了。一般不会是外部的DLL的问题。
三,对于MapInfo应用程序发布的时候,如果你不想安装系统的库安装包的时候,你就需要自己手动注册外部的Activex组件,注册的方式如下:见另外一片文章。
四,对于现在流行的几种OLE组件的使用区别。也见面礼另外的一片文章。