Thread overview | |||||
---|---|---|---|---|---|
|
May 22, 2001 ResolveIt produces linker error | ||||
---|---|---|---|---|
| ||||
Hello, the following code sample, included in a larger project, produces the following linker result: sc main.c -cpp -Aa -r -J -mn -C -WA -ff -5 -a1 -c -g -gg -DHLDRIVER -D_DEBUG=1 -Ie:\prozess\iatinclu -Ie:\prozess\tasklib -Ie:\include -oe:\prozess\obj.tsk \main.obj link /CO /NOI /DE /PACKF /XN /NT /ENTRY:WinMainCRTStartup /BAS:4194304 /A:512 /RC :e:\prozess\obj.tsk\IATPROZ.RES @PROCTRL.LNK Error: e:\prozess\obj.tsk\main.OBJ(main) (21233664): Symbol Undefined _IID_IPersistFile Warning: c:\sc\LIB\SHELL32.LIB(shguid) (21233664): MS Precompiled TYPES not supported Warning: c:\sc\LIB\SHELL32.LIB(shguid) (25636263): Unknown CV version, ignored Lines Processed: 141786 Errors: 1 Warnings: 2 Build failed Has someone (Jan or Walter :-)) ) an idea, what's going wrong here. I don't have the right conclusion. Thanks a lot Heinz-Peter Code sample: #include <shlobj.h> #include <shlguid.h> HRESULT ResolveIt(HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath) { HRESULT hres; IShellLink* psl; char szGotPath[MAX_PATH]; char szDescription[MAX_PATH]; WIN32_FIND_DATA wfd; *lpszPath = 0; // assume failure // Get a pointer to the IShellLink interface. hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *) &psl); if (SUCCEEDED(hres)) { IPersistFile* ppf; // Get a pointer to the IPersistFile interface. hres = psl->QueryInterface( IID_IPersistFile, (VOID **)&ppf); if (SUCCEEDED(hres)) { WCHAR wsz[MAX_PATH]; // Ensure that the string is Unicode. MultiByteToWideChar(CP_ACP, 0, lpszLinkFile, -1, wsz, MAX_PATH); // Load the shortcut. hres = ppf->Load(wsz, STGM_READ); if (SUCCEEDED(hres)) { // Resolve the link. hres = psl->Resolve(hwnd, 0); if (SUCCEEDED(hres)) { // Get the path to the link target. hres = psl->GetPath(szGotPath, MAX_PATH, (WIN32_FIND_DATA *)&wfd, SLGP_SHORTPATH ); if( FAILED(hres) ) { } // Get the description of the target. hres = psl->GetDescription(szDescription, MAX_PATH); if( FAILED(hres) ) { } lstrcpy(lpszPath, szGotPath); } } // Release the pointer to the IPersistFile interface. ppf->Release(); } // Release the pointer to the IShellLink interface. psl->Release(); } return hres; } |
May 22, 2001 Re: ResolveIt produces linker error | ||||
---|---|---|---|---|
| ||||
Posted in reply to Heinz-Peter Nuettgens | Heinz-Peter Nuettgens wrote: > Hello, > > the following code sample, included in a larger project, produces the following linker result: > > sc > main.c -cpp -Aa -r -J -mn -C -WA -ff -5 -a1 -c -g -gg -DHLDRIVER -D_DEBUG=1 > -Ie:\prozess\iatinclu -Ie:\prozess\tasklib -Ie:\include -oe:\prozess\obj.tsk > \main.obj > link /CO /NOI /DE /PACKF /XN /NT /ENTRY:WinMainCRTStartup /BAS:4194304 > /A:512 /RC :e:\prozess\obj.tsk\IATPROZ.RES @PROCTRL.LNK > Error: e:\prozess\obj.tsk\main.OBJ(main) (21233664): Symbol Undefined > _IID_IPersistFile I am not sure, but I think this one resides in UUID.LIB. So, include UUID.LIB into your project. > Warning: c:\sc\LIB\SHELL32.LIB(shguid) (21233664): MS Precompiled TYPES not > supported This is weird. > Warning: c:\sc\LIB\SHELL32.LIB(shguid) (25636263): Unknown CV version, > ignored And so is this. Are you sure you didn't overwrite these files? Don't worry, be Kneppie! Jan |
May 22, 2001 Re: ResolveIt produces linker error | ||||
---|---|---|---|---|
| ||||
Posted in reply to Heinz-Peter Nuettgens | I tried it, and it compiles and links without error. I suggest that perhaps your library files have been corrupted or the wrong ones are being linked in. -Walter P.S. I compiled with the following command: sc test.cpp -cpp -Aa -r -J -mn -C -WA -ff -5 -a1 -c -g -gg -DHLDRIVER -D_DEBUG= 1 Heinz-Peter Nuettgens wrote in message <9edk1n$nq0$1@digitaldaemon.com>... >Hello, > >the following code sample, included in a larger project, produces the following linker result: > >sc >main.c -cpp -Aa -r -J -mn -C -WA -ff -5 -a1 -c -g -gg -DHLDRIVER -D_DEBUG=1 >-Ie:\prozess\iatinclu -Ie:\prozess\tasklib -Ie:\include -oe:\prozess\obj.ts k >\main.obj >link /CO /NOI /DE /PACKF /XN /NT /ENTRY:WinMainCRTStartup /BAS:4194304 >/A:512 /RC :e:\prozess\obj.tsk\IATPROZ.RES @PROCTRL.LNK >Error: e:\prozess\obj.tsk\main.OBJ(main) (21233664): Symbol Undefined >_IID_IPersistFile >Warning: c:\sc\LIB\SHELL32.LIB(shguid) (21233664): MS Precompiled TYPES not >supported >Warning: c:\sc\LIB\SHELL32.LIB(shguid) (25636263): Unknown CV version, >ignored >Lines Processed: 141786 Errors: 1 Warnings: 2 >Build failed > >Has someone (Jan or Walter :-)) ) an idea, what's going wrong here. I don't >have the right conclusion. > >Thanks a lot > >Heinz-Peter > >Code sample: > >#include <shlobj.h> >#include <shlguid.h> > >HRESULT ResolveIt(HWND hwnd, LPCSTR lpszLinkFile, LPSTR lpszPath) >{ > HRESULT hres; > IShellLink* psl; > char szGotPath[MAX_PATH]; > char szDescription[MAX_PATH]; > WIN32_FIND_DATA wfd; > > *lpszPath = 0; // assume failure > > // Get a pointer to the IShellLink interface. > hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, >IID_IShellLink, (LPVOID *) &psl); > > if (SUCCEEDED(hres)) { > > IPersistFile* ppf; > > // Get a pointer to the IPersistFile interface. > hres = psl->QueryInterface( IID_IPersistFile, (VOID **)&ppf); > > if (SUCCEEDED(hres)) { > > WCHAR wsz[MAX_PATH]; > > // Ensure that the string is Unicode. > MultiByteToWideChar(CP_ACP, 0, lpszLinkFile, -1, wsz, MAX_PATH); > > // Load the shortcut. > hres = ppf->Load(wsz, STGM_READ); > > if (SUCCEEDED(hres)) { > > // Resolve the link. > hres = psl->Resolve(hwnd, 0); > > if (SUCCEEDED(hres)) { > > // Get the path to the link target. > hres = psl->GetPath(szGotPath, MAX_PATH, >(WIN32_FIND_DATA *)&wfd, SLGP_SHORTPATH ); > > if( FAILED(hres) ) { > } > > // Get the description of the target. > hres = psl->GetDescription(szDescription, MAX_PATH); > > if( FAILED(hres) ) { > } > > lstrcpy(lpszPath, szGotPath); > > } > > } > > // Release the pointer to the IPersistFile interface. > ppf->Release(); > > } > > // Release the pointer to the IShellLink interface. > psl->Release(); > > } > > return hres; >} > > > > |
Copyright © 1999-2021 by the D Language Foundation