C# 在导入dll的类外部调用导入dll中的方法

C# 在导入dll的类外部调用导入dll中的方法,c#,dll,C#,Dll,我试图从另一个类调用一个方法,它位于我导入的dll中。有办法吗?提前谢谢你! 我想澄清一下:有一个类叫做“TTSManager”。在这个类中导入了一个dll。还有一个类“TTSdotNET”,在这个类中,我想调用dll中的一个方法,但该方法不可访问。我希望有人能帮助我。 P.S.I代码为C# “TTSManager”: 使用UnityEngine; 使用系统集合; 使用制度; 使用System.Runtime.InteropServices public class TTSManager : M

我试图从另一个类调用一个方法,它位于我导入的dll中。有办法吗?提前谢谢你! 我想澄清一下:有一个类叫做“TTSManager”。在这个类中导入了一个dll。还有一个类“TTSdotNET”,在这个类中,我想调用dll中的一个方法,但该方法不可访问。我希望有人能帮助我。 P.S.I代码为C# “TTSManager”: 使用UnityEngine; 使用系统集合; 使用制度; 使用System.Runtime.InteropServices

public class TTSManager : MonoBehaviour 
{
[DllImport ("SpeakerLib")]
private static extern void SpeakToSpeaker(string tts);  
[DllImport ("SpeakerLib")]
private static extern void SpeakToFile(string tts, string fileName, string fileFormat);                                     [DllImport ("SpeakerLib")]
private static extern void ReleaseSpeaker();

private static TTSManager instance = null;

private TTSManager(){}

public static TTSManager getInstance
{
    get
    {
        if(instance == null)
        {
            instance = new TTSManager();
        }
        return instance;
    }
}

// Use this for initialization
void Start () 
{

}

// Update is called once per frame
void Update () 
{

}
}
“TTSdotNET”:


我倾向于为DLL导入创建一个单独的静态类。除了导入函数外,我还为每个DLL函数调用创建包装器方法

例如:

internal static class NativeCalls
{
    [DllImport ...]
    private static extern int SomeFunctionCall(...);

    public static int SomeFunction(...)
    {
        return SomeFunctionCall(...);
    }
}

这样,任何类都可以访问DLL,您的问题就解决了。

希望您在调用类方法的页面上引用了DLL?发布一些代码以获得更清晰的信息,以澄清您自己的问题,您可能希望显示一些您已经编写的代码来演示您的问题。您必须在第一个类中创建一个方法来包装对导入的dll的调用,并从第二个类中调用该方法,如果您希望帮助发布代码。否则我们无法帮助你,因为这个问题无法给出答案。。。是
TTSdotNET
向DLL询问信息,还是向
TTSManager
询问DLL碰巧拥有的信息?
internal static class NativeCalls
{
    [DllImport ...]
    private static extern int SomeFunctionCall(...);

    public static int SomeFunction(...)
    {
        return SomeFunctionCall(...);
    }
}