Wps RegEx

Kostenloses Programm zum lokalen Analysieren, Testen und Verwalten von
Regulären Ausdrücken

Schriftzug Werner Perplies

Dienstleistung

Corels Ventura Publisher
Publikationen
als XML-Datei exportieren.
Kostenlos testen
(Publikation max. 3 Seiten)

Home

Adobe InDesign

SearARep

Wps RegEx

Corel Ventura Informationen und Skripte

Anwenderforum zur CA Visual Objects Programmierung

OCR

automatische Textaufbereitung

Datenkonvertierung

Crossmedia Publishing

Database-Publishing

zur Person

Werner Perplies
Gramanstr. 56
84518 Garching a. d. Alz
Telefon: 0049-8634-3291020
Telefax: 0049-12120-212988

E-Mail:
werner.perplies@weepee.de

Umsatzsteuer-
Identifikationsnummer
gemäß § 27 a Umsatzsteuergesetz:
DE 173599862

Haftungshinweis:
Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links.

Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.

Alle Warenbezeichnungen dienen lediglich der Beschreibung meiner Dienstleistung.

Sie werden ohne Gewährleistung der freien Verwendbarkeit benutzt und sind möglicherweise eingetragene Warenzeichen.

© 2002-2010 Werner Perplies, Garching


Stand:
Sonntag, den 14. März 2010
15:37 Uhr

Anzeigen:
Bücher C# (Auswahl)

Andreas Kühnel: Visual C# 2008: Das umfassende Handbuch (Gebundene Ausgabe)

Andrew Stellmann: C# von Kopf bis Fuß (Broschiert)

Jürgen Bayer: C# 2008 Codebook (C Sharp) (Gebundene Ausgabe)

Frank Eller: Visual C# 2008. Inkl. WPF und LINQ to SQL. Mit 90-Tage-Testversion von Visual Studio 2008 Professional. (Gebundene Ausgabe)

Frank Eller: Visual C# 2005 Grundlagen und Programmiertechniken (Gebundene Ausgabe)

Judith Bishop: C# 3.0 Entwurfsmuster (Gebundene Ausgabe)

Walter Doberenz: Visual C# 2008: Grundlagen und Profiwissen: Berücksichtigt .Net Framework 3.5, WPF, LINQ nd ASP.Net mit AJAX (Broschiert)

Anzeigen:
Bücher Reguläre Ausdrücke (Auswahl)

Jeffrey E. F. Friedl: Reguläre Ausdrücke (Gebundene Ausgabe)

Jeffrey E. F. Friedl: Mastering Regular Expressions (Mastering)

Tony Stubblebine: Reguläre Ausdrücke kurz und gut. (Taschenbuch)

Christian Wenz: Reguläre Ausdrücke. schnell + kompakt (Broschiert)

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
 

Einen String aus einer VO-DLL mit C# abholen
Autor Nachricht
BeitragVerfasst: Sa 8. Apr 2006, 10:22 
Offline

Registriert: Sa 6. Aug 2005, 14:55
Beiträge: 107
Wohnort: 84518 Garching a. d. Alz
Das gleiche Beispiel wie für VB jetzt mit C#

Hinweis:
dies ist eines meiner ersten C#-Programme, also schlagt ;-) mich nicht, wenn ich etwas übersehen oder gar einen Fehler gemacht habe, sondern macht direkt hier die Änderungsvorschläge.

In einer Visual Objects Dll kann ein VO-String nicht nicht direkt an ein aufrufendes fremdes Programm zurückgegeben werden.

Die VO-Beispiel-Dll:

Code:
FUNCTION ReadVariableString(pszBuffer REF PSZ) AS LONG PASCAL

   LOCAL cString2Return      AS STRING
   LOCAL pszLocalBuffer        AS PSZ
   
   LOCAL loBufferLength      AS LONG
   LOCAL lReturnedLength      AS LONG
   LOCAL loStringLength      AS LONG
   LOCAL cString         AS STRING
   
   // longer than 64 Bytes
   // cString2Return   := Replicate(".",256)+"This is aString from a VO-DLL!"
   // smaller than 64 Bytes
   cString2Return   := "This is aString from a VO-DLL!"
   loStringLength   := SLen(cString2Return)
   // necessary to determine buffer length
   // pszLocalBuffer   := PSZ(_CAST,pszBuffer)
   // loBufferLength   := PszLen(pszLocalBuffer)
   loBufferLength   := PszLen(PSZ(_CAST,pszBuffer))
   lReturnedLength   := loBufferLength-(loStringLength+1) // +1 for CHR(0)
   IF lReturnedLength < 0
   
      // Buffer to small
      loStringLength   := loBufferLength-1
      cString       := Left(cString2Return,(loStringLength))

   ELSE // lReturnedLength < 0

      // Buffer size ok:
      cString         := cString2Return
      lReturnedLength   := SLen(cString2Return)
      
   ENDIF // lReturnedLength < 0
   MemCopyString(pszBuffer,cString+CHR(0),loStringLength+1)
   
RETURN lReturnedLength


Ein C#-Testprogramm:

Code:
using System;
using System.Runtime.InteropServices;

class ReadStringFromVoDll
{
    [DllImport(@"D:\!UnderDev\c-Sharp\VarStringfromVo\VarString.dll", CharSet = CharSet.Ansi)]
    public static extern int ReadVariableString(
       [MarshalAs(UnmanagedType.LPStr)]
        ref string cStringFromVo);
    public static void Main()
    {
        System.Console.WriteLine(ReadStringFromVo());
        System.Console.ReadKey();

    }
    public static string ReadStringFromVo()
    {
        // create a small Buffer
        int iBuffLen    = 10;
        string cS = " ".PadRight(10,' ');
        int iResult = ReadVariableString(ref cS);
        if (iResult < 0)
            // Buffer too small
            // greater bigger one and try again
        {
            cS = cS.PadRight(((iResult * -1) + iBuffLen),' ');
            iResult = ReadVariableString(ref cS);
        }
        return cS;
    }
}


Perhaps it helps anybody

_________________
einen schönen Tag wünscht
Werner
--
Werner Perplies, www.weepee.biz


Nach oben
 Profil  
 

Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast



Suche nach:

Gehe zu :
 


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

cron
Themes by Werner Perplies, EDV-Anwendungsberatung © 2008 www.weepee.de
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de