2012-12-20 3 views
0

가져온 dll에있는 메서드를 다른 클래스에서 호출하려고합니다. 그것을 할 방법이 있습니까? 미리 감사드립니다. 자신을 명확하게하기 : "TTSManager"라는 클래스가 있습니다. 이 클래스에서는 dll을 가져 왔습니다. 또한 "TTSdotNET"클래스가 있으며이 클래스에서 dll 내에서 메소드를 호출하려고하지만 메소드에 액세스 할 수 없습니다. 나는 누군가가 나를 도울 수 있기를 바랍니다. 오후 8시 30 분 P.S. 내가 C# 코드 "TTSManager": UnityEngine을 사용하여; using System.Collections; using System; using System.Runtime.InteropServices;이 dll을 가져온 클래스 외부에서 가져온 dll 내의 메서드 호출

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"

public class TTSdotNet : MonoBehaviour 
{ 
void Update() 
{ 
    if (Input.GetKey(KeyCode.F10)) 
    { 
    SpeakToSpeaker("hello world i feel uncomfortable."); 
    } 
} 
} 
+0

u가 클래스 메소드를 호출하려는 페이지에서 dll을 참조했으면 좋겠습니까? 더 명확하게하기 위해 코드를 게시하십시오. – iJade

+1

자신을 명확히하기 위해 문제를 설명하는 코드 중 일부를 보여줄 수 있습니다. – PhoenixReborn

+0

가져온 dll에 대한 호출을 래핑하는 첫 번째 클래스에서 메서드를 만드는 방법을 살펴보고 두 번째 클래스에서 해당 메서드를 호출해야합니다. –

답변

1

은 내가 DLL 수입에 대해 별도의 정적 클래스를 생성하는 경향이있다. 함수를 가져 오는 것 외에도 대부분 각 DLL 함수 호출에 대한 래퍼 메서드를 만듭니다.

예 :

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

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

그런 식으로, 어떤 클래스는 DLL에 액세스 할 수 있으며 문제가 해결된다.

관련 문제