2012-01-04 62 views
2

我有一個ocx文件,我想在Windows服務中使用它。我使用aximp工具從ocx創建dll,但這些dll不起作用,它們會拋出異常。在Windows服務中使用ocx文件

+0

如果您需要幫助,您將不得不提供更多信息。什麼例外和什麼是給出例外的代碼。 – shf301 2012-01-04 03:57:37

+0

將OCX移至服務不會改變OCX的要求。例如,如果其線程單元是STA,則您有責任爲OCX泵送Windows消息。 – 2012-01-04 19:03:52

回答

1

在C#中的Windows服務中使用ocx應該就像在任何其他時間使用COM一樣。只需將ocx註冊爲com服務器,並在項目首選項中添加對其的引用即可。

+0

我註冊了ocx文件到我的64位win 7中 – Bertan 2012-01-04 04:32:00

+0

我使用regsvr32 fk524pxn.ocx命令在我的64位win 7操作系統中註冊了ocx文件。爲了調試,我創建了另一個winform(x86)項目,然後將該ocx文件從引用導入到我的winform項目中。當我調試時,它會拋出一個COM異常,這是「災難性故障(異常來自HRESULT:0x8000FFFF(E_UNEXPECTED))」。如果我通過propeties將我的winform項目轉換爲AnyCPU,那麼它會拋出:「檢索具有CLSID {5AB97943-73D7-4385-BF44-5E4FFCFEBE8C}的組件的COM類工廠失敗,原因如下:80040154」,COM異常。 – Bertan 2012-01-04 04:44:04

+0

該probelm可以從您的ocx或dll引用其他未註冊或無法在windows/system32文件夾中找到的dll引起。使用Dependency Walker,http://www.dependencywalker.com/來調試該場景。 – Motes 2012-01-04 05:02:09