Programatik olarak .lnk dosyasını oluşturmaya çalışıyorum. C'yi kullanmayı tercih ederim, ancak C++ gayet iyi (ve tüm MSDN şeyleri içeride).Wine linker hatası: .lnk oluşturmaya çalışıyor
ilgili kodu bir örnektir:
#include <windows.h>
#include <shobjidl.h>
#include <shlguid.h>
HRESULT CreateLink(LPCSTR lpszPathObj, LPCSTR lpszPathLink, LPCSTR lpszDesc) {
HRESULT hres;
IShellLink* psl;
/* Get a pointer to the IShellLink interface. */
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
IID_IShellLink, (LPVOID*)&psl);
return hres;
}
kullanıyorum ++ wineg ile karmaşığa çalışıyorum:
wineg++ -mno-cygwin -o t t2.cpp
Ve aşağıdaki hataları alıyorum:
t2-Tw9YPp.o: In function `CreateLink(char const*, char const*, char const*)': t2.cpp:(.text+0x34): undefined reference to `IID_IShellLinkA' /usr/bin/ld: t2-Tw9YPp.o: relocation R_386_GOTOFF against undefined hidden symbol `IID_IShellLinkA' can not be used when making a shared object /usr/bin/ld: final link failed: Bad value collect2: ld returned 1 exit status winegcc: i486-linux-gnu-g++ failed
Herhangi bir fikir?
Sorunuzu bir kısayol dosyası oluşturmaya çalıştığınızı söylüyorsunuz, ancak gösterdiğiniz sorun bir bağlayıcı hatasıdır. Kısayolu nasıl oluşturacağınızı biliyor musunuz, ve sadece programın oluşturulmasında sorun yaşıyorsanız ya da linker problemini çözmenizde hala ne yapacağınızı merak ettiniz mi? –
I * düşünüyorum * MSDN'den bağlantı kurabilmem için ihtiyacım olan şeyin temelini oluşturacak bir örnek kodum var. Muhtemelen soru başlığını değiştirmeliyim, bu * yanılıyor * yanıltıcı – singpolyma