Newbie Question


T

Toli

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);
}
 
Ad

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. After that, you can post your question and our members will help you out.

Ask a Question

Top