在64位操作系统中无法从COM方法调用中打开文件错误

时间:2012-02-22 20:05:55

标签: c# .net com

我正在尝试在64位Windows Server Enterprise中使用com组件。我是COM -world的新手。 我们已经在32位机器上使用这个COM库,它可以很好地工作。

它有一个diff msi可以在32位和64位机器上安装。我安装了64位msi,我假设安装的组件是64位。我不知道是否有办法检查这个。在我看到注册表项时安装后,所有类都在 Wow6432Node 节点下注册。这是什么意思?这是否暗示com类是32位? 我创建了一个使用COM库的测试控制台应用程序,并将平台目标设置为x86(没有这个,类没有正确加载)。以下是我的示例代码(我更改了带有示例名称的命名空间)

Type t = Type.GetTypeFromProgID("xyz.loader");

XYZ.interop.Loader oLoader = (XYZ.interop.Loader)Activator.CreateInstance(type);
XYZ.interop.Doc2X oCvt = null;

string InputFile = @"C:\399-words.docx";
string OutputFile = @"C:\399-words.htm";
int nResult;
try
{
           oCvt= XYZ.interop.Doc2X)oLoader.Doc2X;
           oCvt.AttributeFile = @"C:\Program Files\Attributes.xml";
           oCvt.PreProcessTextBoxes = false;
           oCvt.ConvertToX(InputFile, OutputFile, 0, out nResult);
 }
catch (Exception exp)
{
  error handling logic.
}

此代码运行到最后一行并失败,异常无法访问输入文件。 [System.Runtime.InteropServices.COMException] = {“无法打开输入文件”} 异常中没有太多信息。

我尝试过访问该文件夹上的所有人。我不知道如何进一步处理这个问题。

非常感谢有关如何解决此问题的任何指示或帮助。

0 个答案:

没有答案