Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Eksportuje funkcję według nazwy lub porządkowych lub danych z programu.
Składnia
/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]
Uwagi
/EXPORT opcja określa funkcję lub element danych do wyeksportowania z programu, aby inne programy mogły wywołać funkcję lub użyć danych. Eksporty są zwykle definiowane w dll.
Entryname to nazwa funkcji lub elementu danych, który ma być używany przez program wywołujący. Porządkowy określa indeks do tabeli eksportów w zakresie od 1 do 65 535; jeśli nie określisz porządkowych, link przypisuje jeden. Słowo kluczowe NONAME eksportuje funkcję tylko jako porządkową bez nazwy wpisu.
Słowo kluczowe DATA określa, że wyeksportowany element jest elementem danych. Element danych w programie klienckim musi być zadeklarowany przy użyciu extern __declspec(dllimport).
Istnieją cztery metody eksportowania definicji wymienione w zalecanej kolejności użycia:
__declspec(dllexport) w kodzie źródłowym
Instrukcja EXPORT w pliku def
/EXPORT specyfikacji w poleceniu LINK
Dyrektywa komentarza w kodzie źródłowym formularza
#pragma comment(linker, "/export: definition ").
Wszystkie te metody mogą być używane w tym samym programie. Gdy link kompiluje program zawierający eksporty, tworzy również bibliotekę importu, chyba że w kompilacji jest używany plik exp.
LINK używa ozdobionych formularzy identyfikatorów. Kompilator dekoruje identyfikator podczas tworzenia pliku .obj. Jeśli parametr entryname jest określony do konsolidatora w nieukodowanym formularzu (jak pokazano w kodzie źródłowym), link próbuje dopasować nazwę. Jeśli nie można odnaleźć unikatowego dopasowania, link wysyła komunikat o błędzie. Użyj narzędzia DUMPBIN, aby uzyskać ozdobioną formę nazwy identyfikatora, gdy trzeba go określić w konsolidatorze.
Uwaga
Nie należy określać ozdobionej formy identyfikatorów języka C, które są zadeklarowane __cdecl lub __stdcall.
Jeśli musisz wyeksportować nieukodowaną nazwę funkcji i mieć różne eksporty w zależności od konfiguracji kompilacji (na przykład w kompilacjach 32-bitowych lub 64-bitowych), możesz użyć różnych plików DEF dla każdej konfiguracji. (Dyrektywy warunkowe preprocesora nie są dozwolone w plikach DEF). Alternatywnie można użyć #pragma comment dyrektywy przed deklaracją funkcji, jak pokazano tutaj, gdzie PlainFuncName jest nieukodowaną nazwą i _PlainFuncName@4 jest nazwą ozdobioną funkcji:
#pragma comment(linker, "/export:PlainFuncName=_PlainFuncName@4")
BOOL CALLBACK PlainFuncName( Things * lpParams)
Aby ustawić tę opcję konsolidatora w środowisku programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę właściwości wiersza polecenia konsolidatora>konfiguracji.>
Wprowadź opcję w polu Dodatkowe opcje .
Aby programowo ustawić tę opcję konsolidatora
- Zobacz: AdditionalOptions.