【问题标题】:Accessing COM methods from Foxpro从 Foxpro 访问 COM 方法
【发布时间】:2011-08-11 02:18:04
【问题描述】:

我的公司正在尝试使用 VFoxpro 9.0 中的第 3 方 PDF 生成器。他们向我们提供了一个 .dll COM 文件和方法文档,但他们不支持 Foxpro,因此无法提供帮助。

我注册了 DLL 并加载了 COM,它成功了——在我 createobject() 之后智能感知提示我提供方法列表,所以我知道它正在正确导入它们。但是,当我尝试调用任何方法时,我会得到一个弹出窗口,上面只显示“语法错误。”,这几乎没有帮助。我尝试调用一种不带参数的方法,以防问题是通过约定,但该方法也返回“语法错误”。除了创建一个对象并将其用于方法调用之外,我还需要做些什么吗?

我并不是真正的 foxpro 人,但我已经尝试过使用不同的 COM 做同样的事情,比如 Excel.Application,它们的工作方式与我期望的一样。 COM 是否有任何原因可能与 Foxpro 不兼容,或者需要一些其他操作才能使其工作?

非常感谢您的任何建议。


好的,经过一天半我发现了问题。

我输入a=createobject("library.class"),然后输入= a.method(),它返回“语法错误”。事实证明,如果我将变量命名为 a 以外的任何名称,它就可以工作! foxpro 中似乎存在某种错误,因此当变量名称为a 时,它无法正确解析。如果我使用bxanotherName 或其他任何东西都可以。如果我输入?a,它会确认a(object),正如我所说,智能感知正在识别所有方法名称和类型。我迫不及待地想回到 java。

所以谢谢,不需要其他答案,但我会留下这个,以防它可以帮助其他可怜的人。

【问题讨论】:

  • 字母 A 到 J 在 FoxPro 中保留为前 10 个工作区的备用名称。 (这是向后兼容的事情。)一般来说,将它们中的任何一个用作变量名都是一个坏主意。字母 M 也是如此,它是为区分变量和字段而保留的。
  • 嗨@Russel,您能否发布您自己找到的答案作为答案 并接受它,这样这个问题就不会留在“未回答的问题”列表中?我希望你在 Java 世界玩得开心 ;-)...

标签: dll com visual-foxpro foxpro


【解决方案1】:

请参阅我在上面输入的答案 - 变量不能称为“a”。很抱歉没有输入它作为答案,所以这可能会被关闭。

【讨论】:

  • 没有什么能阻止您将上述信息放入答案并接受它。
猜你喜欢
  • 2012-03-25
  • 2018-08-05
  • 1970-01-01
  • 2010-09-30
  • 2010-10-12
  • 2011-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多