DllImport 未在 asp.net 代码隐藏文件中定义,即使包含 System.Runtime.InteropSe

本文关键字:包含 System InteropSe Runtime 定义 asp 未在 net 代码 隐藏文件 DllImport | 更新日期: 2023-09-27 18:34:01

我想从我的 asp.net 3.5 Web 应用程序链接到 C++ dll,并使用隐藏代码中的一些函数。 如果我使用 DllImport 创建一个 C# 库以链接到C++ dll,我可以将 C# 库链接到 asp.net 应用程序,它似乎可以工作。 如何消除 C# 库并直接链接到C++ dll?

当我尝试在 C# 中使用 DllImport 时,即使代码看起来与 C# 库中的代码相同,它后面的代码也是未定义的。

来自 asp.net Web 应用的代码(不起作用,因为 DllImport 突出显示为未定义)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.InteropServices;

/// <summary>
/// Summary description for Chat
/// </summary>
public class Chat
{
    public Chat()
    {
      [DllImport("ChatLib.dll")]
       public static extern void DisplayHelloFromDLL();
    }
}

DllImport 未在 asp.net 代码隐藏文件中定义,即使包含 System.Runtime.InteropSe

您可能需要

将属性和方法声明放在类级别的DllImport侧构造函数之外。

public class Chat
{
    [DllImport("ChatLib.dll")]
    public static extern void DisplayHelloFromDLL();
    public Chat()
    {
    }        
}