Загрузка 32-битной библиотеки DLL в 64-битном процессе [дубликаты]

На этот вопрос уже есть ответ:

Целевая 32-битная или 64-битная собственная DLL в зависимости от среды 3 ответаDllImport - была предпринята попытка загрузить программу с неверным форматом [duplicate] 1 ответ

Я хочу, чтобы мое приложение на C # условно запускало собственный метод, условно выбирая, запускать либо DLL-версию x86, либо x64. Всякий раз, когда я пытаюсь загрузить 32-битную DLL, я получаю следующее сообщение об ошибке:

Unhandled Exception: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)
   at <exeName>.MiniDumpMethods.MiniDumpWriteDumpX86(IntPtr hProcess, UInt32 processId, SafeHandle hFile, MINIDUMP_TYPE dumpType, IntPtr expParam, IntPtr userStreamParam, IntPtr callbackParam)

Базовый контекст: Я хочу, чтобы мой двоичный файл занимал дамп памяти данного процесса. В зависимости от того, 32-разрядный или 32-разрядный процесс, который принимает дамп памяти, он выберет метод MiniDumpwriteDump из версии dbghelp.dll для x86 или x64.

В настоящее время я делаю следующее:

[SuppressUnmanagedCodeSecurity]
internal static class MiniDumpMethods
{
    [DllImport("dbghelp.dll",
        EntryPoint = "MiniDumpWriteDump",
        CallingConvention = CallingConvention.StdCall,
        CharSet = CharSet.Unicode,
        ExactSpelling = true,
        SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool MiniDumpWriteDump(
        IntPtr hProcess,
        uint processId,
        SafeHandle hFile,
        MINIDUMP_TYPE dumpType,
        IntPtr expParam,
        IntPtr userStreamParam,
        IntPtr callbackParam);

[DllImport("dbghelpx86.dll",
EntryPoint = "MiniDumpWriteDump",
CallingConvention = CallingConvention.StdCall,
CharSet = CharSet.Unicode,
ExactSpelling = true,
SetLastError = true)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool MiniDumpWriteDumpX86(
        IntPtr hProcess,
        uint processId,
        SafeHandle hFile,
        MINIDUMP_TYPE dumpType,
        IntPtr expParam,
        IntPtr userStreamParam,
        IntPtr callbackParam);
}

Любая идея, как я могу условно загрузить версию DLL для x86 или x64?

(Примечание: dbghelpx86.dll - это x86-версия dbghelp.dll, которую я переименовал)

Благодарност

Ответы на вопрос(1)

Ваш ответ на вопрос