добавьте пользовательский путь поиска DLL запуск приложения

Поместите console.log(arrayen.length); внутрь, как показано ниже.

    var arrayen = [];
    $.ajax({
        type: 'POST',
        url: 'getEnglishWords.php',
        success: function(words){
            words = JSON.parse(words);
            for(var i = 0; i < 50; i++) {
                arrayen.push(words[i].en);
            }
        },error: (error) => {
             console.log(JSON.stringify(error));
        }
    }).done(function(results) {
        console.log("done : " + arrayen.length);           
});
9
задан 29 November 2008 в 03:04
поделиться

2 ответа

[Редактирование - после перечитывания вопроса, я вижу, что проблема Вы имеете, состоит в том, что DLLs становятся загруженными прежде main запускается]

Я предполагаю, что те библиотеки записаны в C++ и загружают DLLs от конструктора некоторых объектов в глобальной области видимости. Это проблематично. Позвольте мне заключать Yossi Kreinin в кавычки:

Сделайте это сначала вещь в основном (). При использовании C++ необходимо сделать это сначала вещь прежде основной (), потому что люди могут использовать FP в конструкторах глобальных переменных. Это может быть достигнуто путем выяснения определенного для компилятора порядка инициализации единицы перевода, компиляции собственной библиотеки запуска C/C++, переопределения точки входа скомпилированной библиотеки запуска с помощью материала как LD_PRELOAD, перезаписав его в статически связанной программе тут же в двухуровневом изображении, имея принуждение конвенции кодирования для вызова FloatingPointSingleton:: экземпляр () перед использованием FP или стрельбы в людей, которым нравится делать вещи прежде основной (). Это - компромисс.

[Исходный ответ ниже]

Посмотрите эту страницу для алгоритма поиска, используемого для загружаемых DLL. Можно использовать SetDllDirectory() добавить каталог к пути поиска DLL.

Также необходимо смочь добавить каталог к использованию переменной окружения PATH GetEnvironmentVariable() и SetEnvironmentVariable().

Другая опция состоит в том, чтобы изменить текущий рабочий каталог на папку, содержащую DLLs с SetCurrentDirectory(). Просто удостоверьтесь, что возвратили рабочий каталог после загрузки DLLs, если Вы когда-либо загружаете какие-либо файлы с помощью относительных имен файлов.

2
ответ дан 4 December 2019 в 23:08
поделиться

Моя рекомендация - использовать задержку загрузки для DLL и вызывать SetDllDirectory() достаточно рано, чтобы можно было найти их при вызове методов/функций.

2
ответ дан 4 December 2019 в 23:08
поделиться
Другие вопросы по тегам:

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