Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Får inte WM_COPYDATA att fungera

Postades av 2005-02-16 11:01:07 - Henke Larsson, i forum c++, Tråden har 0 Kommentarer och lästs av 740 personer

Jag håller på med ett litet C++ projekt som är strukturerat såhär...
Jag har en .DLL fil och en .EXE fil samt en .h fil som de båda importerar.

Det jag nu vill göra är att komunicera mellan .DLL och .EXE filen genom att använda WM_COPYDATA.

Det fel som uppstår när jag debuggar är: [Unhandled exception in prog.exe (USER32.DLL): 0xC0000005: Access Violation]

(OBS Nedan är ett litet kort utrag över koden som jag tror kan vara fel)

This is the code in the .h file
<code>
//The structure that I want to send to the .EXE file
typedef struct ipcMsg{
int msgType;
HWND hwnd;
TCHAR text[100];
TCHAR className[100];
HWND parenthwnd;
} *LPWM_IPCMSG;
</code>

This is the code in the .DLL file
<code>
//A shared section between the .EXE file and .DLL file
#pragma data_seg ("shared")
LPWM_IPCMSG copyDataStruct = NULL;
TCHAR textOut[MAX_TEXT_LENGTH] = {'\0'};
CWPSTRUCT *cwp = NULL;
#pragma data_seg ()
#pragma comment(linker,"/SECTION:shared,RWS")

//Then there is a function WH_CALLWNDPROC
//LPARAM in the WH_CALLWNDPROC function points to a CWPSTRUCT
cwp = (CWPSTRUCT*) lParam;
//Lets put some data in my structure (lParam is a pointer to a null terminates string that newer is longer
that 100 char)
lstrcat(copyDataStruct->text, (char*) cwp->lParam);
//Initiating the COPYDATASTRUCT that WM_COPYDATA points to, we set the data field of
COPYDATASTRUCT
//to point at the copyDataStruct and because it is placed in the shared memory space the .EXE should
have access to it (OR???)
COPYDATASTRUCT data = {0, sizeof(copyDataStruct), (PVOID) copyDataStruct};
//And then we send it away to the .EXE window
SendMessage(hObserver, WM_COPYDATA, (WPARAM) hDllInstance, (LPARAM) &data);
</code>

And finally the code in the .EXE file that import the .h file
<code>
//This code is in the WndProc function
static LPWM_IPCMSG dataCopy = NULL;
static HWND hwndList;
hwndList = CreateWindow(TEXT("listbox"), …Some stuff
switch(message)
{
case WM_COPYDATA:
//We extract the structure I want to use
dataCopy = (LPWM_IPCMSG)((COPYDATASTRUCT*)lParam)->lpData;
//and then we insert the string in the listbox by sending a pointer to a null terminated string, I use the
one in the dataCopy structure, this is actually not a
//pointer but not sure how to do this
SendMessage(hwndList[0], LB_INSERTSTRING, 0, (LPARAM) dataCopy->text);
return TRUE;
}
</code>

Varför får jag detta felet, när försöker jag läsa från fel minnesadress?


Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 879
27 965
271 774
572
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies