AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bitte um Hilfe bei Übersetzung C++->Delphi mit Fremd-DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Bitte um Hilfe bei Übersetzung C++->Delphi mit Fremd-DLL

Ein Thema von jus · begonnen am 4. Mär 2010 · letzter Beitrag vom 7. Mär 2010
 
jus

Registriert seit: 22. Jan 2005
350 Beiträge
 
Delphi 2007 Professional
 
#1

Bitte um Hilfe bei Übersetzung C++->Delphi mit Fremd-DLL

  Alt 4. Mär 2010, 14:20
Hallo,

Ich bin schon am verzweifeln , plage mich schon seit einigen Nächten damit, die DLL anzusprechen. Ich habe eine fremde DLL, die ich verwenden möchte. Es gibt eine Beispieldatei leider nur in VisualC++ 6.0, die die DLL anspricht. Erschwerend kommt noch hinzu, dass anscheinend in diesem Beispiel die Aufrufe in einer Klasse gekapselt sind. Meine Frage ist kann man sowas überhaupt in Delphi ansprechen? Ich habe nämlich keinen Plan wie ich diese 2 Objekte "CPrintInternal" u. "CPrintPresetInternal"in Delphi nachbauen könnte, die anscheinend die DLL verlangt.

Auszug von Header definition PrintSDK.h
Code:
typedef   long         PRINTERROR;
/* Internal Version */
#define PRINT_INTERNAL_VERSION            100      /* means Ver1.00 */

/*****************************************************************************
 *   Base class for Print SDK.
 *****************************************************************************/
class CPrintInternal;               /* Internal data of CPrint */

class PRINT_SDK_DLL_API CPrint {

protected:
   CPrintInternal         *m_pPrintInternal;
   long            m_lInternalVersion;

public:
               CPrint(const long            in_lInternalVersion = PRINT_INTERNAL_VERSION);
   virtual            ~CPrint();

   virtual      PRINTERROR   PRINT_GetData(
                        HPUTIL_STR1023         &out_AlertString,
                        PRINT_DATAINF         &out_PrintData);
};
/*****************************************************************************
 *   Interface class for PRINT SDK
 *****************************************************************************/
class CPrintPresetInternal;         /* Internal data of CPrintPreset */

class PRINT_SDK_DLL_API CPrintPreset : public CPrint {

protected:
   CPrintPresetInternal      *m_pPrintPresetInternal;

public:
                  CPrintPreset(
                        const long   in_lInternalVersion = PRINT_INTERNAL_VERSION);

   virtual               ~CPrintPreset();
};
In der Beispielanwendung wird die DLL folgendermaßen angesprochen:
Code:
#include "PRINTSDK.h"

/*****************************************************************************
 *   CPrintFunc class definition
 *****************************************************************************/
class CPrintFunc
{
private:
   CPrintPreset*         m_pPrintPreset;
   PRINT_PRESETDATA*      m_pPresetItemList;
   long            m_lPresetCount;
   PPrint_PRINTERTYPE      m_PrintPrinterType;   /* Printer Type */

   /*************************************************************************
    * Internal Methods
    *************************************************************************/
   // create CPrintPreset class object
   PRINTERROR   CreatePrintSdk();

public:
   // Constructor
   CPrintFunc();
   // Destructor
   virtual ~CPrintFunc();
        /*************************************************************************
    * Methods
    *************************************************************************/
        // get printdata from PRINT SDK
   PRINTERROR   GetData(
               HPUTIL_STR1023         &out_AlertString,
               PRINT_DATAINF         &out_DataInf);
}

/*****************************************************************************
 *   Internal Methods
 *****************************************************************************/

/*****************************************************************************
 *   ID   = CPrintFunc::CreatePrintSdk()
 *   func   = create CPrintPreset class object
 *****************************************************************************/
PRINTERROR
CPrintFunc::CreatePrintSdk()
{
   if(m_pPrintPreset) return(PRINTERROR_NOERROR);

   try {
      m_pPrintPreset = new CPrintPreset(PRINT_INTERNAL_VERSION);
      if(!m_pPrintPreset) {
         return(PRINTERROR_MEMORY);
      }
   }
   catch(...){
      return(PRINTERROR_MEMORY);
   }
   return(PRINTERROR_NOERROR);
}
/*****************************************************************************
 *   ID   = CPrintFunc::GetData()
 *   func   = get printdata from PRINT SDK
 *****************************************************************************/
PRINTERROR
CPrintFunc::GetData(
   HPUTIL_STR1023      &out_AlertString,
   PRINT_DATAINF      &out_DataInf)
{
   PRINTERROR   lPrintError = PRINTERROR_NOERROR;
   lPrintError = CreatePrintSdk();
   if(lPrintError != PRINTERROR_NOERROR) {
      return(lPrintError);
   }

   lPrintError = m_pPrintPreset->PRINT_GetData(out_AlertString, out_DataInf);
   return(lPrintError);
}
Mein bisheriger Delphi Ansatz folgt dann.
  Mit Zitat antworten Zitat
 


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 06:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz