spook3ros Δημοσ. 11 Μαρτίου 2005 Δημοσ. 11 Μαρτίου 2005 gyes prospathw na kanw convert mia struct apo c# se c++ .net alla den mou bgainei. o code se c# einai public struct SHFILEINFO { public IntPtr hIcon; public IntPtr iIcon; public uint dwAttributes; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; }; enw autos pou prospathw na ftiaxw einai o typedef struct _SHFILEINFO{ IntPtr hIcon; IntPtr iIcon; unsigned int dwAttributes; TCHAR szDisplayName[260]; TCHAR szTypeName[80]; } SHFILEINFO,*PSHFILEINFO; to error pou pairnw einai cannot declare a managed 'hIcon' in an unmanaged '_SHFILEINFO' profanws thewrei oti o IntPtr einai managed variable.Pws mporw na to kanw na symperiferetai san unmanaged.Giati re gamwto sthn c# douleuei etsi apla?
metaxa5 Δημοσ. 11 Μαρτίου 2005 Δημοσ. 11 Μαρτίου 2005 Υποθέτω πως θες να χρησιμοποιήσεις την δομή με την εντολή SHGetFileInfo. Η αλήθεια είναι πως δεν χρειάζεται να δηλώσεις αυτή την δομή μιας και είναι ήδη δηλωμένη μέσα στο shellapi.h. Το μόνο που έχεις να κάνεις είναι να κάνεις #include αυτό το αρχείο στον κώδικά σου. Πάντως η δήλωση της δομής είναι η ακόλουθη: > typedef struct _SHFILEINFO { HICON hIcon; int iIcon; DWORD dwAttributes; TCHAR szDisplayName[MAX_PATH]; TCHAR szTypeName[80]; } SHFILEINFO; Περισσότερα μπορείς να βρείς στο παρακάτω link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/structures/shfileinfo.asp
spook3ros Δημοσ. 13 Μαρτίου 2005 Μέλος Δημοσ. 13 Μαρτίου 2005 ta katafera na metatrepsw to paradeigma ths ms apo c# se c++.Den xerw an einai apolytws swsto alla douleuei.O kwdikas akolouthei (se periptwsh pou ton xreiastei kapios allos) typedef void *HICON; typedef struct _SHFILEINFO{ HICON hIcon; int iIcon; unsigned int dwAttributes; System::Char szDisplayName __nogc[260]; System::Char szTypeName __nogc[80]; } SHFILEINFO ; unsigned int SHGFI_ICON = 0x100; unsigned int SHGFI_LARGEICON = 0x0; // 'Large icon unsigned int SHGFI_SMALLICON = 0x1; // 'Small icon [DllImport("Shell32.dll")] extern "C" int SHGetFileInfo(String* path, unsigned int fileAttributes, [ref] SHFILEINFO *psfi, unsigned int cbSizeFileInfo, unsigned int uFlags); SHFILEINFO *pShInfo=new SHFILEINFO; String *fName="c:\\temp.txt" // to fName exei to onoma tou arxeiou tou opoiou theloume na paroume ton icon tou. hImgSmall = SHGetFileInfo(fName, 0,pShInfo,sizeof(pShInfo),SHGFI_ICON |SHGFI_SMALLICON); Icon *myIcon=Icon::FromHandle(pShInfo->hIcon);
spook3ros Δημοσ. 14 Μαρτίου 2005 Μέλος Δημοσ. 14 Μαρτίου 2005 wraia phrame ta icons apo to mhxanhma.Yparxei periptwsh na to kanw na doulepsei gia remote files???H prepei na brw allo tropo?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.