Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > OCIServerAttach stack overflow


Автор: dershokus 28.8.2012, 18:47
Здравствуйте.
При подключении с неправильным доменом, вылетает ошибка. 
Цитата

Unhandled exception at 0x249c6987 in test.exe: 0xC0000005: Access violation writing location 0x0000000003ef0000.
Stack overflow.

Гружу oci.dll динамически:
Код

// В классе
...
typedef sword (__cdecl *_OCIServerAttach) (OCIServer *srvhp,OCIError *errhp,const OraText *dblink,sb4 dblink_len,ub4 mode);
...
_OCIServerAttach  m_OCIServerAttach;
...
// так подгружаю библиотеку
if((m_module=LoadLibrary(L"oci.dll"))==NULL)
      return(false);
if(((m_OCIEnvCreate    =(_OCIEnvCreate)    GetProcAddress(m_module, "OCIEnvCreate"))    ==NULL) ||
   ((m_OCIHandleAlloc  =(_OCIHandleAlloc)  GetProcAddress(m_module, "OCIHandleAlloc"))    ==NULL) ||
   ((m_OCIServerAttach=(_OCIServerAttach) GetProcAddress(m_module, "OCIServerAttach")) ==NULL))
    return(false);
...
// вот так подключаюсь, если передавать реальный домен сервера, то все нормально работает
...
if(res=m_OCIEnvCreate(&m_environment,OCI_UTF16,NULL,NULL,NULL,NULL,0,NULL))
    return(false);
...
if(res=m_OCIServerAttach(m_server,m_error,(text*)server.Str(),sizeof(server.Str()),OCI_DEFAULT))
    return(false);
...


Есть какие-нибудь идеи, у меня они уже кончились %)?

Автор: dershokus 29.8.2012, 12:45
Дополнение, это валится на x64. На 32 все работает.
Использовался instantclient-basiclite-windows.x64-11.2.0.3.0.zip

Автор: dershokus 3.9.2012, 14:44
Оказалось, что проблема в стеке. 256Кб не хватило %)
Проблема решена.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)