Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Εξωτερικό DLL...

Îåêßíçóå áðü ôï ìÝëïò panospc. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 16-06-2005, 17:24. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  16-06-2005, 09:14 2849

    Εξωτερικό DLL...

    Έχω ένα αρχείο DLL που ονομάζεται png2dbl.dll και μετατρέπει ένα αρχείο PNG σε DBL. Αυτό που θέλω να κάνω είναι καλέσω την συνάρτηση Png2DBL του DLL μέσα απο την Visual C#. Μαζί με το DLL έχει και το παρακάτω header file

    #ifdef __cplusplus
    #define PNG2DBL_DLL_A extern "C" __declspec (dllexport)
    #else
    #define PNG2DBL_DLL_A __declspec (dllexport)
    #endif

    #define PNG2DBL_DLL_B    __stdcall

    PNG2DBL_DLL_A char * PNG2DBL_DLL_B Png2DBL(char *szPngFile,char *szDblFile);

    Υπάρχει τρόπος να καλέσω την παραπάνω συνάρτηση από την Visual C#;
    Ευχαριστώ...
  •  16-06-2005, 17:24 2874 σε απάντηση της 2849

    Re: Εξωτερικό DLL...

    Μπορείς, χρησιμοποιώντας το [DllImport] attribute.
    Ένα παράδειγμα από το MSDN που καλεί την MessageBox είναι το παρακάτω:

    using System.Runtime.InteropServices;
    public class Win32
    {
         [DllImport("user32.dll", CharSet=CharSet.Auto)]
        public static extern int MessageBox(int hWnd, String text, String caption, uint type);
    }

     public class HelloWorld {
        public static void Main() {
            Win32.MessageBox(0, "Hello World", "Platform Invoke Sample", 0);
        }
    }



    Στην περίπτωσή σου το import πιστεύω ότι θα είναι:

    [DllImport("png2dbl.dll")]
    public static extern String Png2DBL(String szPngFile, String szDblFile);


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems