AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Headerdatei in Pascal

Ein Thema von NickelM · begonnen am 13. Feb 2011 · letzter Beitrag vom 17. Feb 2011
Antwort Antwort
Seite 2 von 2     12   
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#11

AW: C++ Headerdatei in Pascal

  Alt 17. Feb 2011, 06:22
Problem ist...hab ich nicht.. TS3 spuckt nur die Meldung und das aus mehr net.
Das Programm istr nämlich eine Fremdanwendung xD
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#12

AW: C++ Headerdatei in Pascal

  Alt 17. Feb 2011, 13:36
Auslösende Datei ist:

Code:
0:000> lmvm musik_vuplayer
start   end       module name
01fa0000 01fca000   musik_vuplayer T (no symbols)          
    Loaded symbol image file: musik_vuplayer.dll
    Image path: C:\Programme\TeamSpeak 3 Client\plugins\musik_vuplayer.dll
    Image name: musik_vuplayer.dll
    Timestamp:       Tue Feb 15 06:18:18 2011 (4D5A1AAA)
    CheckSum:        00000000
    ImageSize:       0002A000
    File version:    0.0.0.0
    Product version: 0.0.0.0
    File flags:      0 (Mask 0)
    File OS:         0 Unknown Base
    File type:       0.0 Unknown
    File date:       00000000.00000000
    Translations:    0000.04b0 0000.04e4 0409.04b0 0409.04e4
Viel mehr kann man schon nicht entnehmen, weil es nur ein Minidump ist (sprich: nicht der komplette Speicherinhalt ist verfügbar)
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#13

AW: C++ Headerdatei in Pascal

  Alt 17. Feb 2011, 20:07
Auslösende Datei ist:

Code:
0:000> lmvm musik_vuplayer
start   end       module name
01fa0000 01fca000   musik_vuplayer T (no symbols)        
    Loaded symbol image file: musik_vuplayer.dll
    Image path: C:\Programme\TeamSpeak 3 Client\plugins\musik_vuplayer.dll
    Image name: musik_vuplayer.dll
    Timestamp:       Tue Feb 15 06:18:18 2011 (4D5A1AAA)
    CheckSum:        00000000
    ImageSize:       0002A000
    File version:    0.0.0.0
    Product version: 0.0.0.0
    File flags:      0 (Mask 0)
    File OS:         0 Unknown Base
    File type:       0.0 Unknown
    File date:       00000000.00000000
    Translations:    0000.04b0 0000.04e4 0409.04b0 0409.04e4
Viel mehr kann man schon nicht entnehmen, weil es nur ein Minidump ist (sprich: nicht der komplette Speicherinhalt ist verfügbar)
no symbols....hmm kann es sein das das auf einen nicht zugewissenen pointer hindeutet?...Weil die Anwendung übergibt die pointer zu den Funktionen mit einer exportierten Prozedur. Also in der DLL muss eine Funktion exportiert werden (was ich aber schon gemacht habe), die nach dem initalisieren der DLL von der anwendung aufgerufen wird. Diese Prozedur hat eine const parameter, den Record, den ich dann intern in der DLL speichern muss. Dies sieht dan so aus:

Delphi-Quellcode:
var TS3Func : TTS3Functions; // der Record;

procedure ts3plugin_setFunctionPointers(const funcs : TTS3Functions); cdecl; //der Parameter wird von der Anwendung festgelegt (zumindest sieht es so aus, in dem Originalcode
begin
TS3Func := funcs;
end;

//Und hier der Aufruf
function ts3plugin_onTextMessageEvent(serverConnectionHandlerID : uint64; targetMode : anyID; toID : anyID; fromID : anyID; const fromName : PAnsiChar; const fromUniqueIdentifier : PAnsiChar; const message : PAnsiChar; ffIgnored : Integer) : Integer; cdecl;
begin
if TS3Func.requestSendPrivateTextMsg(serverConnectionHandlerID,'test',fromID,nil) = 0 then
begin
end
end;
Hier der Original Beispielcode aus der .c Datei:
Code:
static struct TS3Functions ts3Functions;

/* Set TeamSpeak 3 callback functions */
void ts3plugin_setFunctionPointers(const struct TS3Functions funcs) {
    ts3Functions = funcs;

//Hier die Beispiel funktion in dem gleichen Zusammenhang, wie ich sie auch verwenden will
int ts3plugin_onTextMessageEvent(uint64 serverConnectionHandlerID, anyID targetMode, anyID toID, anyID fromID, const char* fromName, const char* fromUniqueIdentifier, const char* message, int ffIgnored) {

if(ts3Functions.requestSendPrivateTextMsg(serverConnectionHandlerID, "Text message back!", fromID, NULL) != ERROR_ok)
{

}

}
Wie gesagt aufrufen tut er die exportierte funktion, nur beim aufruf der Callback funktionen bekomm ich den fehler rausgeschmiessen (ich ruf ja dafor einmal PostMessage wegen meinem Sinn des Plugins machen. Es kommt auch an und er macht es auch, nur die Funktion will net.
Wenn ich es rauskommentiere gehts. Also auf jedenfall liegt es daran.

EDIT: Liegt es vllt daran? In dem Originalcode steh sowas noch am Anfang:
Code:
#pragma warning (disable : 4100) /* Disable Unreferenced parameter warning */
Dies hab ich zur Sicherheit so gemacht:
(*$HPPEMIT '#pragma warning (disable : 4100)' *) //oder hat das bzw. ist das falsch übersetzt?
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.

Geändert von NickelM (17. Feb 2011 um 20:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#14

AW: C++ Headerdatei in Pascal

  Alt 17. Feb 2011, 22:09
no symbols....hmm kann es sein das das auf einen nicht zugewissenen pointer hindeutet?...
Nee, das deutet darauf hin, daß es für deine DLL (da ist es normal weil die Delphi ist) und für den Elternprozeß (nicht in der Ausgabe enthalten) keine gültigen Debugsymbole gibt.

(*$HPPEMIT '#pragma warning (disable : 4100)' *) //oder hat das bzw. ist das falsch übersetzt?
Das dürfte falsch sein. Warnungen sind compiler-spezifisch.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz