Aracılığıyla paylaş


/EXPORT (İşlevi Dışarı Aktarır)

Bir işlevi programınızdan ada veya sıraya veya verilere göre dışarı aktarır.

Sözdizimi

/EXPORT:entryname[,@ordinal[,NONAME]][,DATA]

Açıklamalar

/EXPORT seçeneği, diğer programların işlevi çağırabilmesi veya verileri kullanabilmesi için programınızdan dışarı aktarabileceğiniz bir işlev veya veri öğesi belirtir. Dışarı aktarmalar genellikle bir DLL'de tanımlanır.

Giriş adı, çağıran program tarafından kullanılacak işlevin veya veri öğesinin adıdır. sıra, 1 ile 65.535 aralığındaki dışarı aktarmalar tablosuna bir dizin belirtir; sıra belirtmezseniz, LINK bir dizin atar. NONAME anahtar sözcüğü, işlevi yalnızca giriş adı olmadan sıralı olarak dışarı aktarır.

DATA anahtar sözcüğü, dışarı aktarılan öğenin bir veri öğesi olduğunu belirtir. İstemci programındaki veri öğesi extern __declspec(dllimport) kullanılarak bildirilmelidir.

Tanımı dışarı aktarmak için önerilen kullanım sırasına göre listelenen dört yöntem vardır:

  1. Kaynak kodunda __declspec(dllexport)

  2. . def dosyasındaki EXPORTS deyimi

  3. LINK komutunda /EXPORT belirtimi

  4. biçimindeki #pragma comment(linker, "/export: definition ")kaynak kodunda bir açıklama yönergesi.

Tüm bu yöntemler aynı programda kullanılabilir. LINK dışarı aktarmalar içeren bir program oluşturduğunda, derlemede bir .exp dosyası kullanılmadığı sürece bir içeri aktarma kitaplığı da oluşturur.

LINK, düzenlenmiş tanımlayıcı biçimlerini kullanır. Derleyici, .obj dosyasını oluşturduğunda bir tanımlayıcıyı süsler. Girdi adı bağlayıcıya kaydedilmemiş biçiminde belirtilirse (kaynak kodda göründüğü gibi), LINK adı eşleştirmeyi dener. Benzersiz bir eşleşme bulamazsa, BAĞLANTIR bir hata iletisi döndürür. Bağlayıcıya belirtmeniz gerektiğinde bir tanımlayıcının süslü ad biçimini almak için DUMPBIN aracını kullanın.

Dekont

veya __stdcallolarak bildirilen __cdecl C tanımlayıcılarının süslü biçimini belirtmeyin.

Sıralanmamış bir işlev adını dışarı aktarmanız gerekiyorsa ve derleme yapılandırmasına bağlı olarak farklı dışarı aktarmalarınız varsa (örneğin, 32 bit veya 64 bit derlemelerde), her yapılandırma için farklı DEF dosyaları kullanabilirsiniz. (DEF dosyalarında önişlemci koşullu yönergelerine izin verilmez.) Alternatif olarak, burada gösterildiği gibi işlev bildiriminden önce bir #pragma comment yönerge kullanabilirsiniz; burada PlainFuncName , düzeltilmemiş ad ve _PlainFuncName@4 işlevin süslü adıdır:

#pragma comment(linker, "/export:PlainFuncName=_PlainFuncName@4")
BOOL CALLBACK PlainFuncName( Things * lpParams)

Visual Studio geliştirme ortamındaki bu bağlayıcı seçeneğini ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>Bağlayıcısı>Komut Satırı özellik sayfasını seçin.

  3. Seçeneği Ek Seçenekler kutusuna girin.

Bu bağlayıcı seçeneğini program aracılığıyla ayarlamak için

Ayrıca bkz.

MSVC bağlayıcı başvurusu
MSVC Bağlayıcı Seçenekleri