Συμβουλή συστήματοςΑυτό το άρθρο ισχύει για διαφορετικό λειτουργικό σύστημα από αυτό που χρησιμοποιείτε. Το περιεχόμενο του άρθρου που ενδέχεται να μην σας αφορά έχει απενεργοποιηθεί.
Αυτό το άρθρο βήμα προς βήμα περιγράφει τον τρόπο κλήσης μιας διαχειριζόμενης
DLL από τον τοπικό κώδικα C++. Για να το κάνετε αυτό, να δημιουργήσετε μια απλή διαχείριση DLL χρησιμοποιώντας το Microsoft Visual C#.NET ή Microsoft Visual C# 2005, και
στη συνέχεια καλέστε το διαχειριζόμενο DLL από τον τοπικό κώδικα C++.
Για να δημιουργήσετε μια απλή διαχείριση DLL που έχει δημόσια μέθοδο
Προσθέστε δύο αριθμούς και επιστρέφει το αποτέλεσμα, ακολουθήστε τα εξής βήματα:
Ξεκινήστε το Microsoft Visual Studio.NET ή το Microsoft Visual Studio 2005.
Από το Το αρχείο μενού, σημείο Νέα, και στη συνέχεια κάντε κλικ στο κουμπί Έργο. Το Νέα
Έργο Ανοίγει το παράθυρο διαλόγου.
Στην περιοχή Τύποι έργου, κάντε κλικ στο κουμπί Οπτική
Έργων C#.
Σημείωση Στο Visual Studio 2005, κάντε κλικ στο κουμπί Visual C# στην περιοχή Τύποι έργου.
Στην περιοχή Πρότυπα, κάντε κλικ στο κουμπί Κλάση
Βιβλιοθήκη.
Με το Όνομα πλαίσιο κειμένου, πληκτρολογήστε sManagedDLL, και στη συνέχεια κάντε κλικ στο κουμπί OK.
Ανοίξτε το αρχείο Class1.cs στην προβολή Code.
Για να δηλώσετε μια δημόσια διασύνδεση που έχει μια μέθοδο για να προσθέσετε δύο
αριθμοί, προσθέστε τον ακόλουθο κώδικα στο αρχείο Class1.cs:
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
Για να υλοποιήσετε αυτήν τη δημόσια διασύνδεση σε μια κλάση, προσθέστε το
παρακάτω κώδικα στο αρχείο Class1.cs:
// Interface implementation.
public class ManagedClass:ICalculator
{
public int Add(int Number1,int Number2)
{
return Number1+Number2;
}
}
Κάντε κλικ στο κουμπί Έναρξη, και στη συνέχεια στο Προγράμματα.
Εάν χρησιμοποιείτε το Microsoft Visual Studio.NET 2003, σημείο
Για να Microsoft Visual Studio.NET 2003, και στη συνέχεια στο Visual Studio.Εργαλεία ΔΙΚΤΎΟΥ. Εάν χρησιμοποιείτε Microsoft Visual
Στούντιο.NET 2002, σημείο Microsoft Visual Studio.NET, και
στη συνέχεια Visual Studio.Εργαλεία ΔΙΚΤΎΟΥ. Εάν χρησιμοποιείτε το Visual
Studio 2005, σημείο Microsoft Visual Studio 2005, και
στη συνέχεια Visual Studio 2005 Tools.
Εάν χρησιμοποιείτε το Visual Studio.NET 2003, κάντε κλικ στο Visual Studio.Γραμμή εντολών NET 2003 Για να ανοίξετε το Visual Studio
.NET εντολών. Εάν χρησιμοποιείτε το Visual Studio.NET 2002, κάντε κλικ στο Visual Studio.NET εντολών Για να ανοίξετε το Visual Studio.NET
γραμμή εντολών. Εάν χρησιμοποιείτε το Visual Studio 2005, κάντε κλικ στο κουμπί Visual Studio 2005 μια γραμμή εντολών Για να ανοίξετε το Visual Studio 2005
γραμμή εντολών.
Για να δημιουργήσετε ένα ισχυρό όνομα για τη βιβλιοθήκη σας κλάσης, πληκτρολογήστε το
παρακάτω εντολή στο Visual Studio.ΚΑΘΑΡΉ γραμμή εντολών:
MyKeyFile.SNK SN.exe -k
Αντιγράψτε το αρχείο MyKeyFile.SNK στο έργο σας
ο φάκελος.
Κάντε διπλό κλικ το AssemblyInfo.cs αρχείο
Ανοίξτε το αρχείο στην Εξερεύνηση λύση.
Αντικαταστήστε τις παρακάτω γραμμές κώδικα με το AssemblyInfo.cs
το αρχείο
Καταχώρηση διαχειριζόμενο DLL για χρήση με COM ή C++ εγγενή
Για να χρησιμοποιήσετε το διαχειριζόμενο DLL με COM ή
με την εγγενή C++, πρέπει να καταχωρήσετε πληροφορίες συγκρότησης από το αρχείο DLL στο του
Το μητρώο των Windows. Ακολουθήστε τα εξής βήματα:
Κάντε κλικ στο κουμπί Έναρξη, και στη συνέχεια στο Προγράμματα.
Εάν χρησιμοποιείτε το Microsoft Visual Studio.NET 2003, σημείο
Για να Microsoft Visual Studio.NET 2003, και στη συνέχεια στο Visual Studio.Εργαλεία ΔΙΚΤΎΟΥ. Εάν χρησιμοποιείτε Microsoft Visual
Στούντιο.NET 2002, σημείο Microsoft Visual Studio.NET, και
στη συνέχεια Visual Studio.Εργαλεία ΔΙΚΤΎΟΥ. Εάν χρησιμοποιείτε το Visual
Studio 2005, σημείο Microsoft Visual Studio 2005, και
στη συνέχεια Visual Studio 2005 Tools
Εάν χρησιμοποιείτε το Visual Studio.NET 2003, κάντε κλικ στο Visual Studio.Γραμμή εντολών NET 2003 Για να ανοίξετε το Visual Studio
.NET εντολών. Εάν χρησιμοποιείτε το Visual Studio.NET 2002, κάντε κλικ στο Visual Studio.NET εντολών Για να ανοίξετε το Visual Studio.NET
γραμμή εντολών. Εάν χρησιμοποιείτε το Visual Studio 2005, κάντε κλικ στο κουμπί Visual Studio 2005 μια γραμμή εντολών Για να ανοίξετε το Visual Studio 2005
γραμμή εντολών.
Στο Visual Studio.NET ή Visual Studio 2005 εντολών, αλλαγή του
διαδρομή καταλόγου του καταλόγου που περιέχει διαχειριζόμενο αρχείο DLL σας.
Για να καταχωρήσετε πληροφορίες συγκρότησης από το διαχειριζόμενο DLL στο
το μητρώο των Windows και να δημιουργήσετε μια αντίστοιχη βιβλιοθήκη τύπων, εκτελέστε το
παρακάτω εντολή στο Visual Studio.ΚΑΘΑΡΉ γραμμή εντολών:
Καλέστε το διαχειριζόμενο DLL
από τον τοπικό κώδικα C++
Για να καλέσετε το διαχειριζόμενο DLL που μόλις δημιουργήσατε από C++ εγγενή
κώδικα, ακολουθήστε τα εξής βήματα:
Ξεκινήστε το Visual Studio.NET ή Visual Studio 2005.
Από το Το αρχείο μενού, σημείο Νέα, και στη συνέχεια κάντε κλικ στο κουμπί Έργο.
Εάν χρησιμοποιείτε το Visual C++.NET 2003, κάντε κλικ στο Οπτική
Έργα C++ στην περιοχή Τύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπί Το Project κονσόλας Win32 στην περιοχή Πρότυπα. Εάν έχετε
χρησιμοποιείτε Visual C++.NET 2002, κάντε κλικ στο Έργα του Visual C++στην περιοχή Τύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπί Win32
Έργο στην περιοχή Πρότυπα. Εάν έχετε
Οι χρησιμοποιώντας το Visual C++ 2005, κάντε κλικ στο κουμπί Visual C++στην περιοχή Τύποι έργου, και στη συνέχεια κάντε κλικ στο κουμπί Win32
Έργο στην περιοχή Πρότυπα
Με το Όνομα πλαίσιο κειμένου, πληκτρολογήστε CPPClient, και στη συνέχεια κάντε κλικ στο κουμπί OK.
Εάν χρησιμοποιείτε το Visual C++.NET 2003 ή Visual C++ 2005, κάντε κλικ στο κουμπί Τέλος. Εάν χρησιμοποιείτε το Visual C++.NET 2002, κάντε κλικ στο Ρυθμίσεις εφαρμογής, κάντε κλικ στο κουμπί Κονσόλα
Εφαρμογή, και στη συνέχεια κάντε κλικ στο κουμπί Τέλος.
Ανοίξτε το αρχείο CPPClient.cpp στην προβολή Code.
Εισαγωγή βιβλιοθήκης τύπων που δημιουργεί RegAsm.exe, προσθήκη
τον παρακάτω κώδικα στο αρχείο CPPClient.cpp:
// Import the type library.
#import "..\ManagedDLL\bin\Debug\ManagedDLL.tlb" raw_interfaces_only
Εάν η διαδρομή στον υπολογιστή σας διαφέρει από αυτό, αλλάξτε τη διαδρομή της βιβλιοθήκης τύπων
διαδρομή.
Για να δηλώσετε το χώρο ονομάτων, χρήση, προσθέστε τον παρακάτω κώδικα στο
το αρχείο CPPClient.cpp:
using namespace ManagedDLL;
Για να καλέσετε το διαχειριζόμενο DLL, προσθέστε τον ακόλουθο κώδικα για το _tmain συνάρτηση:
// Initialize COM.
HRESULT hr = CoInitialize(NULL);
// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));
long lResult = 0;
// Call the Add method.
pICalc->Add(5, 10, &lResult);
wprintf(L"The result is %d", lResult);
// Uninitialize COM.
CoUninitialize();
return 0;
Πιέστε το συνδυασμό πλήκτρων CTRL + F5 για να εκτελέσετε την εφαρμογή.
// Class1.cs
// A simple managed DLL that contains a method to add two numbers.
using System;
namespace ManagedDLL
{
// Interface declaration.
public interface ICalculator
{
int Add(int Number1, int Number2);
};
// Interface implementation.
public class ManagedClass:ICalculator
{
public int Add(int Number1,int Number2)
{
return Number1+Number2;
}
}
}
Πρόγραμμα-πελάτης C++
// CPPClient.cpp: Defines the entry point for the console application.
// C++ client that calls a managed DLL.
#include "stdafx.h"
#include "tchar.h"
// Import the type library.
#import "..\ManagedDLL\bin\Debug\ManagedDLL.tlb" raw_interfaces_only
using namespace ManagedDLL;
int _tmain(int argc, _TCHAR* argv[])
{
// Initialize COM.
HRESULT hr = CoInitialize(NULL);
// Create the interface pointer.
ICalculatorPtr pICalc(__uuidof(ManagedClass));
long lResult = 0;
// Call the Add method.
pICalc->Add(5, 10, &lResult);
wprintf(L"The result is %d\n", lResult);
// Uninitialize COM.
CoUninitialize();
return 0;
}
Σημείωση Πρέπει να προσθέσετε το κοινό (επιλογή μεταγλωττιστή υποστήριξης χρόνου εκτέλεσης γλώσσας/CLR:oldSyntax) στο Visual C++ 2005 να μεταγλωττιστεί με επιτυχία αυτό το δείγμα κώδικα.
Ακολουθήστε τα εξής βήματα:
Κάντε κλικ στο κουμπί Έργο, και στη συνέχεια κάντε κλικ στο κουμπί Όνομα_έργου Ιδιότητες.
Σημείωση Όνομα_έργου αντιπροσωπεύει το όνομα του έργου.
Αναπτύξτε το στοιχείο Ιδιότητες παραμέτρων, και στη συνέχεια κάντε κλικ στο κουμπί Γενικά.
Κάντε κλικ στην επιλογή Υποστήριξη χρόνου εκτέλεσης κοινής γλώσσας, παλιά σύνταξη (/ clr:oldSyntax) με το Υποστήριξη κοινή γλώσσα χρόνου εκτέλεσης ρύθμιση στο δεξιό τμήμα του παραθύρου του έργου, κάντε κλικ στο Εφαρμογή, και στη συνέχεια κάντε κλικ στο κουμπί OK.
Για περισσότερες πληροφορίες σχετικά με το χρόνο εκτέλεσης κοινής γλώσσας μεταγλωττιστή επιλογές υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
Για περισσότερες πληροφορίες σχετικά με την έκθεση.NET Framework
στοιχεία COM, επισκεφθείτε την ακόλουθη Web Microsoft Developer Network (MSDN)
τοποθεσία:
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:828736
(http://support.microsoft.com/kb/828736/en-us/
)
Πόση προσπάθεια καταβάλλατε για να χρησιμοποιήσετε αυτό το άρθρο;
Πολύ λίγη
Λίγη
Μέτρια
Μεγάλη
Πολύ μεγάλη
Πείτε μας για ποιον λόγο και με ποιον τρόπο θα μπορούσαμε να βελτιώσουμε αυτές τις πληροφορίες
Σας ευχαριστούμε! Τα σχόλιά σας θα μας βοηθήσουν να βελτιώσουμε το περιεχόμενο υποστήριξης. Για περισσότερες επιλογές βοήθειας, επισκεφτείτε την αρχική σελίδα της Βοήθειας και υποστήριξης.