Visual C++ - Соединение сменного DLL против EXE?

Вот ссылка, которая шаг за шагом объясняет, что вам нужно. ссылка: http://www.thebestcsharpprogrammerintheworld.com/2017/07/26/localizing-a-wpf-program-using-c/

XAML:

Код:

    using System.Globalization;
    using System.Configuration;

    Properties.Resources.Culture = new CultureInfo(ConfigurationManager.AppSettings["Culture"]);

//To change the locale in runtime you need to set

    public static void SetLanguage(string locale)
    {
        if (string.IsNullOrEmpty(locale)) locale = "en-US";
        Properties.Resources.Culture= new System.Globalization.CultureInfo(locale);
    }

AppConfig.cs:


    
  

10
задан Sean Edwards 20 April 2009 в 22:39
поделиться

3 ответа

Что вы подразумеваете под "поиском символа времени выполнения"? Вы имеете в виду динамическую загрузку библиотек с использованием dlopen и dlsym и и т. Д. ? Эквиваленты в Windows называются LoadLibrary и GetProcAddress .

В Windows вы не экспортируете символы из исполняемого файла. Вы должны только экспортировать их из DLL. Правильный способ решить вашу проблему - перестроить архитектуру так, чтобы экспортированные символы находились в dll, с которым могут связываться исполняемый файл и другие dll плагина.

5
ответ дан 4 December 2019 в 02:27
поделиться

Как гласит ИНФОРМАЦИЯ 1800, не делай так. Переместите Object из исполняемого файла в «третью» DLL. Связать плагины и исполняемый файл с этим.

1
ответ дан 4 December 2019 в 02:27
поделиться

Вы не можете, легко. Загрузчик Windows не предназначен для экспорта символов из EXE-файла и его привязки к символам в DLL.

Один из примеров, который я видел, - это экспорт DLL определенной функции, которую вызывает EXE. Он принимает в качестве параметра структуру, которая содержит адреса функций в EXE для вызова DLL.

1
ответ дан 4 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: