Foxpro 2.6a 用于 Windows RegFn 调用
我必须替换分别使用 RegFn 和 CallFn 注册和调用的现有 dll 调用。
我正在尝试使用 C# 编写 dll,希望只要函数签名匹配并且 dll 位于正确的位置,它就能工作。
所以
pnHndl= RegFn("CALCULATE", "I", "I", "AJons.DLL")
pnRetVal = CallFn(pnHndl, 0)
我的代码如下:
[Guid("EAB7C2CD-2471-4BDA-90E9-F70403BAA557")]
[ComVisible(true)]
public class AJons : _AJons
{
[ComVisible(true)]
public int CALCULATE(int value)
{
return value * 2;
}
}
Foxpro 不玩球 我只是得到“无法加载库 AJon.dll”
有人有任何经验吗?
干杯。
I have to replace an existing dll call that is registered and called using RegFn and CallFn respectively.
I am trying to write the dll using C# in the hope that as long as the function signature match and the dll is in the right place it will work.
so
pnHndl= RegFn("CALCULATE", "I", "I", "AJons.DLL")
pnRetVal = CallFn(pnHndl, 0)
My code is as follows:
[Guid("EAB7C2CD-2471-4BDA-90E9-F70403BAA557")]
[ComVisible(true)]
public class AJons : _AJons
{
[ComVisible(true)]
public int CALCULATE(int value)
{
return value * 2;
}
}
Foxpro doesn't play ball I just get 'could not load library AJon.dll'
Does anyone have any experience here?
Cheers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
据我所知,那些真正古老的 RegFn 和 CallFn 是用于调用 Win32 本机 Dll 的 - 与 COM 完全不同。
创建一个能够使用这些函数的 Win32 dll 需要 C++。
你应该做的(如果你必须继续使用FoxPro)至少使用最新版本的VFP。
写在我的 iPhone
Update 1
上1) 以防万一我不清楚,您不能从.NET 制作这种类型的 DLL。
2) 查看此链接此处,了解如何执行以下操作的非常简单的示例编写一个Win32 dll。
From what I can see, those really old RegFn and CallFn are for calling Win32 native Dlls - completely different from COM.
What you need to create a Win32 dll that will work with those functions is C++.
What you should do (if you HAVE to keep using FoxPro) is at least use the latest version of VFP.
written on my iPhone
Update 1
1) Just in case I wasn't clear, you cannot make this kind of DLL from .NET.
2) Have a look at this link here for a very simple example of how to write a Win32 dll.