Newbie Question

Discussion in 'C++' started by Toli, Jun 23, 2003.

  1. Toli

    Toli Guest

    I have a simple question, im trying to access a dll called
    'runtest.dll', with a routine with the header:

    void RunTest(LPVOID lpData, int nDataLen, LPSTR szstrResult, int
    nMaxResLen)

    Currently my code, gives me an access violation writing with a memory
    address. The point of runtest.dll is to accept data from a file
    (lpData), and return (in szstrResult) a string created from the data
    (which is binary data). Sound simple enough? My code is below, any
    help is greatly appreciated. Thanks in advance.


    typedef VOID (*MYPROC)(LPVOID, int, LPSTR, int);
    void passFile(LPCSTR fileName)
    {
    HINSTANCE testLib;
    testLib = LoadLibrary("runtest.dll");
    if (testLib==0)
    {
    return;
    }
    MYPROC procTest;
    procTest = (MYPROC) GetProcAddress(testLib,"RunTest");

    HANDLE hFile;
    hFile = CreateFile(fileName, GENERIC_READ, FILE_SHARE_READ, NULL,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    CHAR buf[2048];
    DWORD dwNumRead=sizeof(buf);
    ReadFile(hFile, buf, sizeof(DWORD)*256,&dwNumRead,NULL);
    CHAR lpstrResult[256]
    (procTest) (buf,sizeof(buf),lpstrResult,sizeof(lpstrResult);
    FreeLibrary(testLib);
    }
     
    Toli, Jun 23, 2003
    #1
    1. Advertisements

  2. Toli

    Dan Cernat Guest

    Hmm,


    LPVOID, LPSTR, HINSTANCE, DWORD ...

    try a Microsoft newsgroup.

    Dan
     
    Dan Cernat, Jun 24, 2003
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.