Español
Foro

Fehlermeldung: Falscher Parametertyp %...

 

funkheld
¡Hola, guten Tag.
Yo habe dieses Programa para XPSE algo verändert.
Und lo kommt siempre ni Fehlermeldung.
Yo encontrar el Typ de Fehler no:



Wo steckt el ?
Línea 88 es en el XProfEd leer.
KompilierenMarcaSeparación
 {$cleq}
Def CopyMemory(3) !"KERNEL32","RtlMoveMemory"
Declare Ende%, SendeBtn&, EndeBtn&, Edit&
Declare Groesse&, Text$, ProgHndl&, AltProc&
Declare CopyData#, EigeneDaten#
Struct SCopyData = ~COPYDATASTRUCT
Dim CopyData#, SCopyData
Window 20,20-400,400
WindowTitle "Programm2"
EndeBtn& = Create(Button,%hWnd,Beenden,105,50,70,20)
SendeBtn& = Create(Button,%hWnd,Senden,15,50,70,20)
Edit& = Create(Edit, %hWnd, , 10, 15, 170, 24)

Proc Senden

    Parameters Nachricht$

    With CopyData#

        .dwData& = 0
        .cbData& = SizeOf(Nachricht$)
        .lpData& = Addr(Nachricht$)

    EndWith

    Sendmessage(ProgHndl&,~WM_COPYDATA,%hWnd,Addr(CopyData#))

EndProc

Proc WndProc

    parameters wnd&, msg&, wparam&, lparam&

    If msg&=~WM_COPYDATA

        CopyMemory(CopyData#,lparam&,12)
        Groesse& = CopyData#.cbData&
        Dim EigeneDaten#, Groesse&
        CopyMemory(EigeneDaten#,CopyData#.lpData&,Groesse&)
        Text$ = String$(EigeneDaten#,0)
        Dispose EigeneDaten#

    EndIf

    return call(AltProc&,wnd&,msg&,wparam&,lparam&)

Endproc

AltProc&=~SetWindowLong(%hwnd,~GWL_WNDPROC,ProcAddr(WndProc,4))

While 1

    ProgHndl&=FindWindow("Programm2")
    Case ProgHndl&: Break
    Sleep 100

EndWhile

Usermessages ~WM_COPYDATA

WhileNot Ende%

    WaitInput

    If %Key = 2

        Ende% = 1

    ElseIf GetFocus(EndeBtn&)

        Ende% = 1

    ElseIf GetFocus(SendeBtn&)

        Senden GetText$(Edit&)

    ElseIf %umessage=~WM_COPYDATA

        SetText Edit&, Text$

    Endif

EndWhile

Dispo
CopyData# End

Gracias.

Gruss
peter

31 kB
Hochgeladen:23.02.2013
Ladeanzahl42
Descargar
 
23.02.2013  
 



Typ % Así que una Int -

vermutlich esperado XProfan a el Punto kein Int -

vermutlich en Anweisungen como esta:
KompilierenMarcaSeparación
Create(Button,%hWnd,Beenden,105,50,70,20)
>

Dürfte así trabajo:
KompilierenMarcaSeparación
Create("Button",%hWnd,"Beenden",105,50,70,20)
>

Nochwas:
KompilierenMarcaSeparación
Usted zeigst para una wProc en una interpretierte Proc -

gehe esta de Programmabstürzen de, veces hier veces como. Für algo como con ProcAddr

necesariamente en una nProc zeigen como esta nativen Características APC- & threadsicher

son.
 
23.02.2013  
 



Ventana principal Subclassing z.B. así:
KompilierenMarcaSeparación
oder sin globale Variable:
KompilierenMarcaSeparación
Garantiert absturzsicher.

Siehe auch Beispiele al Ende dieses Dokumentes: [...] 

Referencia:

XProfan-Fehlermeldungen-Fehlerzeile-Angabe beim Einsatz con XPSE
debería el Línea en el dateiname.ENH-Expediente entsprechen.
 
23.02.2013  
 




funkheld
Jup, danke. Posesiones Yo ahora geändert.
Lo startet, aber friert entonces una.
Irgendwie es el Programa no en el neuesten Stand.

Woran liegt el porque nun?
Oder hast du irgendwo una Programa , wo uno Daten de una Ventana para otro Ventana senden kann ?

Gracias.

Gruss
peter
 
23.02.2013  
 



Dafür Es el Función sendMessage sí como, en Daten a Controls/ Ventana a senden.

Damit puede ser bastante praktisch 3 ganzzahlige Werte übermitteln:
KompilierenMarcaSeparación
 
23.02.2013  
 



Apéndice:

Yo sehe el Usted wm_copyData uso möchtest -

macht eig. sólo Sinn si uno más que 3 Werte übermitteln möchte como z.B.

una Stringinhalt. wm_copyData como UserMessage kann pero no zuverlässig

trabajo como para Zeitpunkt des Auslesens de WP y LP el Daten no

mehr disponible posición (necesario) como el Daten normal sólo así largo bestehen

a el Nachricht el wProc erreicht ha. Usted puede sin embargo wm_copyData-

übermittelte Daten en el wProc obtener y de hay de weiterverwenden.
 
23.02.2013  
 




funkheld
Yo habe hier algo gefunden. Funktioniert después de media Vorstellungen..

Hiermit sende Yo ahora :
KompilierenMarcaSeparación
 {$cleq}
Declare Ende&, senden&, Dlg&,wert&
declare IsActive&, InMemory&, SizeOfMem&, hmap&, hMapView&
Dlg&     = Create("Dialog", %hwnd, "Senden", 220, 190, 410, 280)
senden& = Create("Button", Dlg&, "Senden", 110, 220, 80, 30)
Ende&    = Create("Button", Dlg&, "Ende", 210, 220, 80, 30)
IsActive& = 0
InMemory& = 4000
'1024 Bytes Speicher
SizeOfMem& = 1024
'Speicherbereich anlegen
hmap&     = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,SizeOfMem&,"MeinSpeicher")
'Zeiger auf Speicherbereich ermitteln
hMapView& = ~MapViewOfFile(hMap&,$000F001F, 0, 0, 0)
'die ersten 4 Bytes erhalten das Fensterhandle
Long   hMapView&,0 = %hwnd
'die nächsten 4 Bytes bleiben frei für das Fensterhandle von Programm 2
wert&=0

WhileNot @Clicked(Ende&)

    WaitInput

    If @Clicked(senden&)

        If Long(hMapView&,4) <> 0

            IsActive& = 1

        Endif

        dat_send

    EndIf

EndWhile

End

proc dat_send

    wert&=wert&+1
    long hMapView&,8 = wert&

    If IsActive&

        sendMessage(Long(hMapView&,4),InMemory&,0,0)

    endif

ENDPROC


Hiermit se empfangen:
KompilierenMarcaSeparación
 {$cleq}
Declarar IsActive&, InMemory& , Ende&, SizeOfMem&, hmap&, hMapView&
IsActive& = 0
InMemory& = 4000
Ende& = 0
'1024 Bytes Speicher
SizeOfMem& = 1024
'Speicherbereich invertir
hmap& = ~CreateFileMapping(-1,0,~PAGE_READWRITE,0,SizeOfMem&,"MeinSpeicher")
'Zeiger en Speicherbereich ermitteln
hMapView& = ~MapViewOfFile(hMap&,$000F001F, 0, 0, 0)
Cls
'el zweiten 4 Bytes obtener el Fensterhandle
Largo hMapView&,4 = %hwnd
Mensajes del usuario InMemory&

whilenot Ende&

    Waitinput

    If %UMessage = InMemory&

        Imprimir long(hMapview&,8)

    Endif

EndWhile

~UnmapViewOfFile(hMapView&)
~CloseHandle(hMapView&)
End

Wird esta : %UMessage jedesmal después de el durchlauf en "0" gesetzt y neu beschrieben en uno neuen Übertragung oder restos en ersten Verbindung %UMessage en valor InMemory& ?

Gracias.

Gruss
peter
 
24.02.2013  
 



Schau veces hiernach Será mejor que te va en 0 gesetzt:
KompilierenMarcaSeparación
 {$cleq}
cls
usermessages 12345
sendMessage(hWnd,12345,0,1)
sendMessage(hWnd,12345,0,2)
sendMessage(hWnd,12345,0,3)

do{

    waitinput 1000
    case %uMessage : print ulParam

/font>


porque el Edición lautet:

321
 
24.02.2013  
 




funkheld
Jup, danke.
Jetzt kann Yo el SendMessage erkennen o einordnen.

Gruss
peter
 
24.02.2013  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

3.500 Views

Untitledvor 0 min.
Andreas Koch10.09.2014
Ernst12.05.2014
Nico Madysa20.02.2014
mein02.06.2013
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

iF (5x)
funkheld (4x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie