-4

私はac#プロセスから呼び出されたc++ dllを持っています...

[DllImport(@"My.dll", EntryPoint = "Function1", CallingConvention = CallingConvention.Cdecl)]
        public static extern bool MyFunction(int id1, int id2, [MarshalAsAttribute(UnmanagedType.LPWStr)] StringBuilder Name);

これがdllエントリポイントです...

switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        std::cout << "Attach" << std::endl;
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        std::cout << "Detach" << std::endl;
        break;
    }

このように、1 つのアタッチと 4 つのデタッチを取得します...

アタッチ デタッチ デタッチ デタッチ デタッチ

誰でも理由を説明できますか?

プロセスは関数を 1 回だけ呼び出します。

4

1 に答える 1