singlepost

Ошибка: Exception class EAccessViolation with message 'Access Violation'. << На главную или назад  

#include <cstring.h>
#include <vcl.h>
#include "Base10.h"
#pragma hdrstop

typedef IUnknown*__stdcall (*LPCreateInst) (void);
extern "C" __declspec (dllimport) IUnknown* __stdcall CreateInst (void);

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
string name;
int number;
char szText[100];

HINSTANCE hinst;
LPCreateInst lpci;

hinst=LoadLibrary("D:\\HOME\\10\\Debug_Build\\Server10.dll");
lpci = (LPCreateInst) GetProcAddress(hinst, "CreateInst");

IUnknown* pIUnknown=lpci();

ICar* pICar=NULL;
pIUnknown->QueryInterface(IID_ICar,(void**)&pICar);

pICar->Set(string("А"),1); // тут ошибка
pICar->Get(name,number);

wsprintf (szText,"Название: %s\nНомер: %d",name.c_str(),number);
MessageBox (NULL,szText,"Текст",MB_OK);

return 0;
}

Base10.h

#include <objbase.h>
#include <initguid.h>
#include <cstring.h>
DEFINE_GUID(IID_ICar,0×00021141,0,0,0xC0,0,0,0,0,0,0,0×46);

interface ICar :public IUnknown{
public:

virtual void __stdcall Get(string&, int&)=0;
virtual void __stdcall Set(string, int)=0;
};

8 ответов в теме “Ошибка: Exception class EAccessViolation with message 'Access Violation'.”

  1. 7
    Ирина Ким ответил:

    да лан=) потом посмотрю, главное что прога периодически работает=) я думаю этого хватит чтоб сдать ее на лабе=)

  2. 6
    Ваня Яни ответил:

    'Access Violation' означает, что программа обратилась по недопустимому адресу:
    ICar* pICar=NULL;
    pIUnknown->QueryInterface(IID_ICar,(void**)&pICar);
    pICar->Set(string("А"),1); // тут ошибка

    QueryInterface не возвращает нужного адреса. Посмотри значение, возвращаемое этим методом.

  3. 5
    Ирина Ким ответил:

    это конечно странно…но прога заработала…я хз почему…я просто еще раз откомпилила сервер.срр

  4. 4
    Ирина Ким ответил:

    блиииииин…вот че она поработает а потом опять тупииииит=(((

  5. 3
    Антон Щиров ответил:

    Посмотри код ошибки, который возвращает QueryInterface. Там не E_NOINTERFACE случайно?

  6. 2
    Ирина Ким ответил:

    там
    [C++ Warning] Dialogs.hpp(581): W8058 Cannot create pre-compiled header: initialized data in header
    в Server10.cpp
    а так как клиент работает с сервером то может поэтому и ошибка?

  7. 1
    Ирина Ким ответил:

    не пойму в чем тут дело…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.