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