其实,vc Atl编写的word工具栏按钮插件可以成功加载,通过rebuild all生成dll文件后,再打开word,在其工具栏就出现了我新增加的工具栏按钮。问题是,如果我把这个工程拷备到另一个地方(比如D盘,原来是在C盘的),再rebuild all生成dll文件后,再打开word,在其工具栏就不出现我要新增的工具栏按钮。这是怎么回事?问题出在哪?

解决方案 »

  1.   

    需要重新Regsvr32注册一下控件
      

  2.   


    怎么注册D盘里的控件?今天我把这个工程拷备到办公室电脑的D盘上,重新完全编译(rebuild all),生成dll文件后,打开word文档,本希望出现的工具栏按钮却没有出现,regsvr32一把也不行。后来,把这个工程拷备到桌面上,重新完全编译(rebuild all),生成dll文件后,打开word文档,所希望的工具栏按钮出现了。这是为什么?
      

  3.   

    应该说在哪注册并不影响它加载呀。一般都是编译后,regsvr32 + 绝对路径都可以。在用的时候保证你dll在你注册的路径下就可以了。如你在d:盘生成的dll。注册时resvr32 d:\你的工程\debug\**.dll。就行了。如果你要移到其他的盘,你的保证你注册的路径有那个.dll文件就可以了。
    另一个注册不成功的原因 可能你缺少某些库。你用depends看一下该dll关联了那些库。
      

  4.   

    其实,我是把在D盘的整个工程文件夹拷备到桌面的。在完全编译(rebuild all)时,也自动执行注册了。如果打开拷备到桌面上的工程完全编译后,不需要手工再regsvr32,再打开word,我所要工具栏按钮出现了。可是回到D盘,打开D盘里相同的工程,完全编译后,再打开word,所要求的工具栏按钮就是没有出现,于是regsvr32一把(按楼上的说法,带上完全路径),显示的是注册成功,打开word,还是不见所要的工具按钮。楼上说,可能缺少某些库,同一个工程,在一个地方完全正常,拷备到不同的地方就会出现“缺少某些库"吗?这个好象不太可能吧。
    到底是怎么回事呢?
      

  5.   

    针对这个问题:相同的工程,拷备到桌面上完全编译生成dll文件,打开word后所要的工具按钮出现了,可是打开在D盘的相同工程完全编译后生成dll文件,打开word后所要的工具按钮就是不出现。我比较了这两个DLL文件,几乎完全相同(只有6个字节不同)。另外,我把D盘生成的dll文件拷备到桌面,取代桌面上原来生成的dll文件,regsvr32一把,打开word却出现了工具栏按钮。 这到底是怎么回事?
      

  6.   

    需要重新Regsvr32注册一下控件
      

  7.   

    这个问题我也遇到相同的状况并且解决了。不知道楼主现在解决了没有。
    这是因为你加载后执行插件功能,然后出错,word自动禁止加载。
    打开word,文件-〉选项-〉加载项-〉管理   在管理中的下拉菜单中选择禁用项目,启用你的插件就可以了。
    不同版本的位置有细微差别。