2015-10-29 1 views
0

Je travaille avec un SDK mais je ne peux pas obtenir une commande SendMessage fonctionnant correctement sur un système d'exploitation 64 bits. J'ai lu http://www.pinvoke.net/default.aspx/user32.SendMessage et je comprends que IntPtr doit être utilisé mais je n'arrive toujours pas à faire fonctionner le code. Voici des parties du code original.C# win32 SendMessage Commande ne fonctionnant pas en VS Tout mode UC uniquement en mode x86

public const Int32 WM_COPYDATA = 0x4A;   // Value of WM_COPYDATA 

[DllImport("User32.dll", EntryPoint = "SendMessage")] 
    public static extern Int32 SendMessage(
             IntPtr hWnd, 
             UInt32 Msg, 
             UInt32 wParam, 
             ref COPYDATASTRUCT lParam); 

result = SendMessage(hWnd, ImageConnectionsMain.WM_COPYDATA, (Int32)0, ref cds); // Win32API 

J'apprécierais tout commentaire.

+0

Avez-vous vérifié ceci http://www.pinvoke.net/default.aspx/Structures.COPYDATASTRUCT –

+0

Qu'est ce que "ne fonctionne pas"? Lire [demander]. – CodeCaster

+0

Dans VS défini sur Any CPU mode, il n'y a pas d'erreur de débogage mais le message n'est pas envoyé. En mode X86, le message est envoyé et l'application réceptrice répond. –

Répondre

0

J'ai le code qui fonctionne avec un mélange du lien que j'ai mis dans la question et Lien d'Ivan Storv. J'avais raté le remplacement de Int32 avec IntPtr. Merci beaucoup