1

UnmanagedExportsを使用しています

DllMainエントリポイントをエクスポートしたい。

ここで私が試したこと

[DllExport("DllMain", CallingConvention.StdCall)]
public static bool DllMain(IntPtr hModule, uint dwReason, byte[] lpReserved)
{ 
  // I Write a text to file here
  return true; 
}

次に、 LoadLibraryを呼び出しますが、何も起こりません。解決策はありますか?

4

1 に答える 1

0

やったー、静的コンストラクターを使用して方法を見つけました。

エクスポートを含むクラスを静的にし、静的メソッドを追加するだけです。

public static class Class1
{
    static Class1()
    {
        Console.WriteLine("DLL MAIN (Only DLL_PROCESS_ATTACH) :D");
    }

    [DllExport("AddFunc", CallingConvention.Cdecl)]
    public static int AddFunc(int a, int b)
    {
        return a + b + 1;
    }
}

AddFunc が呼び出されたとき、プログラムは最初に Class1 を呼び出します(1 回のみ) 次に AddFunc を呼び出します

とにかく DLL_PROCESS_DETACH の場合は?

于 2016-10-19T16:53:25.660 に答える