Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Unable to load DLL. (Exception from HRESULT: 0x800703E6)"

5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Надо подключить длл, написанную на unmanaged c++ к проекту windows Forms(тоже c++). Причем уже есть консольный проект, на котором эта длл хорошо работает.. Подключаю, компилю. При выполнении программы на любой функции длл-ки выдает эксепшн
"Unable to load DLL 'bmodel.dll': Неверная попытка доступа к адресу памяти. (Exception from HRESULT: 0x800703E6)".
Длл-ка эта ни на какие другие несуществующие)) модули не ссылается(только kernel и ntdll). В чем может быть проблема? заранее благодарен за любые советы
5
09 мая 2010 года
hardcase
4.5K / / 09.08.2005
Цитата:
В чем может быть проблема?


В коде.
Его нет.

5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Логично))
Но просто и писать особо нечего. есть длл(чисто уже скомпиленная, без исходников). перенес в папку с прогой. присоединил к проект h-файл и lib, вызывающую функции длл-ки.
Потом объявил функцию:
[DllImport("bmodel.dll")]
static int SMODEL_CheckedQuantEnrollUsers();
И попытался в коде вызвать эту функцию. В ответ- вышеупомянутый эксепшн
5
09 мая 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Karrde
Логично))
Но просто и писать особо нечего. есть длл(чисто уже скомпиленная, без исходников). перенес в папку с прогой. присоединил к проект h-файл и lib, вызывающую функции длл-ки.

В h-файле находятся extern-объявления функций, они, собственно, и интересны.

5.1K
09 мая 2010 года
Karrde
88 / / 15.10.2007
Код:
#ifndef _BUILD_SPEAKER_MODEL_H
#define _BUILD_SPEAKER_MODEL_H
#include "iddsp_struct.h"
#ifdef _WIN32  
  #include "license.h"
#endif/* _WIN32 */


#ifdef __cplusplus
extern "C" {
#endif  //__cplusplus


#ifdef _WIN32
/////////////////////////////////////////////
// Get GritTec's product information
  extern "C" __declspec(dllimport)
const TProductInfo SMODEL_Info;

///////////////////////////////////////////////////////////////////////////////
// Functions for Installation of a key of GritTec's Product (it's used for DLL library)
///////////////////////////////////////////////////////////////////////////////
#ifdef USE_GRITTEC_INSTALL_KEY
// Checked of license key
//   Returns non-zero if the key is valid and installed
int SMODEL_CheckedKey(TChar100 *cName,//(o) get user Name
                 TChar100 *cKey  //(o) get license Key
                );
// Installation of a key of GritTec's Product (it's used for DLL library)
//   Returns non-zero if the key is valid and installed
int SMODEL_InstallKey(const char *cName,//(i) set user Name
                    const char *cKey  //(i) set Key
                   );
// Uninstallation of a key of GritTec's Product
//   Returns non-zero if the currently-installed key has been uninstalled.
int SMODEL_UnInstallKey();
// Shows the GritTec-supplied Enter Key dialog, and lets the user enter a key (it's used for DLL library)
//   Returns non-zero if the user successfully enters a key.
int SMODEL_ShowEnterKeyDialog(void* Handle);
// Return maximum quantity of enrollment users which you can use for creation of voice models
// with current license key.
 int SMODEL_CheckedQuantEnrollUsers();
#endif/* USE_GRITTEC_INSTALL_KEY */
///////////////////////////////////////////////////////////////////////////////
#endif/* _WIN32 */






// Building Large Speaker model with S-states
// Return: 1 (If this function is correct)
// Return: 0 (If this function is not correct or in case of excess of maximum
//            quantity of enrollment users with current license key.
//            For checking your quantity of enrollment users use
//            SMODEL_CheckedQuantEnrollUsers() function.)
    #ifdef SET_ID_TUNNING_PARAMETRES
char SMODEL_CreateLarge(TSMODEL *pThis,
                   TIdTuning idTune,//(i) Set parametres for building of Voice (GMM) Model
                   int len_Features, double **_Features,// (i)
                   TSPEAKER_MODEL *tSpeaker,//(o) target speaker model with s-states
                   TCHAR256 codID//(i) Set Code activation of GritTec's products
                  );
    #else/* else SET_ID_TUNNING_PARAMETRES */
char SMODEL_CreateLarge(TSMODEL *pThis,
                   int len_Features, double **_Features,// (i)
                   TSPEAKER_MODEL *tSpeaker,//(o) target speaker model with s-states
                   TCHAR256 codID//(i) Set Code activation of GritTec's products
                  );
    #endif/* SET_ID_TUNNING_PARAMETRES */


#ifdef _WIN32
// Building Speaker model with S-states
// Return: 1 (If this function is correct)
// Return: 0 (If this function is not correct or in case of excess of maximum
//            quantity of enrollment users with current license key.
//            For checking your quantity of enrollment users use
//            SMODEL_CheckedQuantEnrollUsers() function.)
    #ifdef SET_ID_TUNNING_PARAMETRES
char SMODEL_Create(TSMODEL *pThis,
                   TTUNE_SPEAKER_MODEL TuneSpeakModel,//(i) Set parametres for building of Voice (GMM) Model
                   TSID_DSP *pDSP,//(i)
                   char Kind_features,     // (i) 0 - using all features, 1 - using vocal features
                   TSPEAKER_MODEL *tSpeaker,//(o) target speaker model with s-states
                   TCHAR256 codID//(i) Set Code activation of GritTec's products
                  );
    #else/* else SET_ID_TUNNING_PARAMETRES */
char SMODEL_Create(TSMODEL *pThis,
                   TSID_DSP *pDSP,//(i)
                   char Kind_features,     // (i) 0 - using all features, 1 - using vocal features
                   TSPEAKER_MODEL *tSpeaker,//(o) target speaker model with s-states
                   TCHAR256 codID//(i) Set Code activation of GritTec's products
                  );
    #endif/* SET_ID_TUNNING_PARAMETRES */

#else/* else _WIN32: for kernel mode and any DSP */

// Building Speaker model with S-states
char SMODEL_Create(TSMODEL *pThis,
                   TSID_DSP *pDSP,//(i)
                   char Kind_features,     // (i) 0 - using all features, 1 - using vocal features
                   TSPEAKER_MODEL *tSpeaker//(o) target speaker model with s-states
                  );
#endif/* _WIN32 */

// Copy voice model
char SMODEL_CopyModel(TSPEAKER_MODEL &sp2/*(o)*/,TSPEAKER_MODEL &sp1/*(i)*/);

#ifdef __cplusplus
}
#endif /* __cplusplus */

#endif /* _BUILD_SPEAKER_MODEL_H */
5
10 мая 2010 года
hardcase
4.5K / / 09.08.2005
Я не слишком понял зачем прицеплять к проекту на C# *.h и *.lib файлы, но судя по заголовочному файлу есть проблемы с соглашением вызова функций из DLL.
 
Код:
public static class SMODEL
{

    [DllImport("bmodel.dll", EntryPoint = "SMODEL_CheckedQuantEnrollUsers", CallingConvention = CallingConvention.Cdecl)]
    public static int CheckedQuantEnrollUsers();

}
5.1K
10 мая 2010 года
Karrde
88 / / 15.10.2007
Сорри, забыл сказать. Пишу на управляемом c++(в принципе, разницы не много). а вот насчет длл-выбора нет. надо именно ее присоединять.
с указанием соглашений вызова и точки вызова ничего не изменилось... все равно та же ошибка((
5.1K
11 мая 2010 года
Karrde
88 / / 15.10.2007
Спасибо за подсказку)) вроде разобрался.. тема можно закрыть
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог