转自:http://hi.baidu.com/tr4c3/blog/item/971c0fd7da38a3dea144df27.html
以前用DATAGRID控件都好好的,这次做了一个小程序后却出现这样的问题:
我用InstallShield把MSDATGRD.OCX打包进安装程序,然后在我的XP虚拟机上做安装测试,结果软件运行到加载DATAGRID控件的窗口就出错了,提示“cannot initialize data bindings”,且DATAGRID中没有数据。我知道肯定是在“Set DataGrid1.DataSource = Rs”这条代码上出错的,但代码本身绝对没有问题。然后我又在另一个XP虚拟机上测试,但在这个XP下软件运行很正常。两个XP的区别在于,前一个很干净,没有安装过任何东西,后一个则装过office和几个小工具。
现在问题明朗化了,结论就是肯定还少装了什么。但是很奇怪,难道使用DATAGRID控件,除了注册MSDATGRD.OCX外,还要别的库文件等来支持吗?于是上网查了一下,有人说还需要注册一下MSSTDFMT.DLL才可以。那么就再把它加到安装包里面,到虚拟机上测试,这下真的没问题了!原来MSSTDFMT.DLL是微软标准数据格式对象相关动态链接库文件,引用名称为“Microsoft Data Formatting Object Library”,如果在开发程序中有数据绑定,就是通过它对数据格式化后再绑定到控件的。虽然有时候程序里面没有对它进行引用,但如果用到数据绑定控件,那么就要记得把MSSTDFMT.DLL加到安装程序里面。