【问题标题】:How to access PInvoke DLL from DLL COM C# Project¿?如何从 DLL COM C# Project¿ 访问 PInvoke DLL?
【发布时间】:2019-08-14 20:08:19
【问题描述】:

需要使用 PINVOKE 方法手动访问功能性 DLL (C++),我不知道如何访问签名,这个功能性 DLL 是为外部开发人员制作的。是否存在另一个 pinvoke 方法来返回所有值?

Visual Fox Pro 9.0 错误:

这个问题是 VFP 应用程序没有从 TransbankPosSDK.dll 访问外部库 libserialport-0.dll 和 TransbankWrap.dll。

示例 C#

public delegate void MyCallback(); 
[DllImport("MYDLL.DLL")] 
public static extern void MyFunction(MyCallback callback);

这是类似的方法吗?,你有另一种方法可以访问 呼唤?

【问题讨论】:

  • 您的问题不清楚,看起来不像是 VFP 错误。它是说它不是一个有效的.Net dll。你确定它不是win32 DLL吗?您是否尝试从 VFP 或 .Net 使用它?如果来自 .Net,请查看 pinvoke.net
  • 我需要知道从 COM DLL 调用手动功能 DLL,例如:public delegate void MyCallback(); [DllImport("MYFUNCTIONALDLL.DLL")] public static extern void MyFunction(MyCallback callback);
  • 好的,然后看看我已经说过的 PInvoke.net。
  • 我看了 pinvoke.net
  • 你说的是COM DLL???恐怕尚不清楚您要做什么。所有图片都是西班牙语。如果您的意思是要在 .Net 中使用 COM DLL,那么您是否首先注册了它?接下来,您是否使用 Tlbimp 将类型信息导入 .Net(您可以将 COM DLL 添加到您的项目中,VS 会为您使用 Tlbimp)。 - 并且您的项目必须针对 32 位(平台 x86)。

标签: c# .net dll visual-foxpro


【解决方案1】:

PINVOKE.NET

平台调用教程 平台调用服务 (PInvoke) 允许托管代码调用在 DLL 中实现的非托管函数。

本教程向您展示了如何从 C# 调用非托管 DLL 函数。本教程中讨论的属性允许您调用这些函数并正确编组数据类型...

链接:https://msdn.microsoft.com/en-us/ie/aa288468(v=vs.94)

链接2:https://msdn.microsoft.com/en-us/ie/system.runtime.interopservices.dllimportattribute(v=vs.94)

链接3:http://pinvoke.net

【讨论】:

    猜你喜欢
    • 2015-02-22
    • 1970-01-01
    • 2011-09-28
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    相关资源
    最近更新 更多