tags:

views:

58

answers:

1

I'm trying to install driver behind the user:

I've create DLL which call SetupCopyOEMInf using c++ then i call it from VB application:

C++ code:

PBOOL bRebootRequired = false;
PCTSTR szInfFileName = (PCTSTR) "c:\\temp\\ttt\\Driver\\slabvcp.inf";

if(!SetupCopyOEMInf(szInfFileName,NULL, SPOST_PATH, SP_COPY_REPLACEONLY, NULL, 0, NULL, NULL)){;
DWORD dw = GetLastError(); 

LPVOID lpMsgBuf;
LPVOID lpDisplayBuf;

FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf,0, NULL );

MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);

}

And when i call this function i receiving error "The system cannot find the file specified."

But the path to my file is correct.

+2  A: 
PCTSTR szInfFileName = (PCTSTR) "c:\\temp\\ttt\\Driver\\slabvcp.inf";

A cast is not going to work, it will turn your 8-bit character string into Chinese. Fix:

PCTSTR szInfFileName = _T("c:\\temp\\ttt\\Driver\\slabvcp.inf");
Hans Passant
Thanks. Now it works.
Junior