Popis název Úprava C++

Překlady článku Překlady článku
ID článku: 126845 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Microsoft C++ kompilátory kódují názvy symboly C++ programy zahrnout informace typu název. Toto se nazývá "název Úprava" nebo "název pozměnění." Účelem tohoto je zajistit bezpečné typ propojení. Jazyk C++ umožňuje funkce přetížení kde funkcí se stejným názvem jsou pouze odlišeny od jedné jiné typy dat argumenty pro funkce. Úprava názvu umožňuje linker rozlišit mezi různými verzemi přetížené funkce, protože názvy funkce jsou kódovány nebo upraven odlišně.

Další informace

Kompilátor různých dodavatelů mají vlastní metody nebo algoritmy pro decorating názvy. Microsoft nepublikuje algoritmus jeho kompilátory použít pro název úprava, protože může v budoucnu změnit. Však je někdy nutné získat verzi dekorovaný název funkce. Potřebujete například exportovat C++ funkce z Windows DLL uvedením v části Export souboru .DEF vybudovat DLL. (Přestože deklarování je upřednostňovanou metodou exportovat funkce C++, Visual C++, 32-bit Edition pomocí funkce s __declspec (dllexport) je stále platný tyto produkty pomocí souboru .DEF.) Funkce exportovat úspěšně, je třeba jeho dekorovaný název není název zdrojový kód seznamu.

Pro všechny výše uvedené produkty Microsoft zpřístupní prohlížeč Toolkits. Tyto toolkits poskytují funkce, které lze interpretovat upraven názvy.

Další informace o __declspec(dllexport) klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
132044V kódu pomocí _declspec(dllimport) a _declspec(dllexport)
Následující ukázkový kód používá funkci FormatDName v prohlížeči knihovny součástí Toolkit prohlížeče. Stáhnout prohlížeč Toolkit, naleznete na následujícím webu:
http://www.microsoft.com/downloads/details.aspx?FamilyID=621ae185-1c2a-4d6b-8146-183d66fe709d&displaylang=en
Funkce vrátí upraveného formuláře jí předán název.

Ukázkový kód

   /* Compile options needed: cl /AL getname.cpp bthunkl.obj /link bsc.lib
          (for 16-bit, where getname.cpp is the source file name)
                              cl getname.cpp /link bsc.lib
          (for 32-bit version 4.x and earlier, where getname.cpp is the source
           file name)
   */ 

   #include <iostream.h>
   #include <strstrea.h>

   extern "C"
   {
   #include "hungary.h"
   #include "bsc.h"
   #include "bscsup.h"
   }

   void main( int argc, char *argv[] )
   {
       if ( argc < 2 )
       {
           cout << "Usage: GETNAME decorated-name" << endl;
           return;
       }

       strstream name;

       // Call browser library function to get undecorated name
       name << FormatDname ( argv[1] ) << '\0';

       cout << "Undecorated name: " << name.str() << endl;
       name.rdbuf()->freeze( 0 );
   }
				
Následující příklad pracuje s novější prohlížeče Toolkit 5.0 a Visual C++ verze 5.0.
   /* Compile options needed: cl /GX getname.cpp /link msbsc50.lib
          (where getname.cpp is the source file name)
   */ 

   #include <iostream>
   #include <strstream>
   #include <windows.h>
   #include "bsc.h"

   using namespace std;

   int main( int argc, char *argv[] )
   {
       Bsc* pbsc;

       if ( argc < 3 )
       {
           cout << "Usage: GETNAME bscfile-name decorated-name" << endl;
           return 1;
       }

       strstream name;

       // Open the browser file
       Bsc::open( argv[1], &pbsc );

       // Call browser library function to get undecorated name
       name << pbsc->formatDname( argv[2] ) << '\0';

       cout << "Undecorated name: " << name.str() << endl;
       name.rdbuf()->freeze( 0 );

       pbsc->close();
       return 0;
   }
				

Vlastnosti

ID článku: 126845 - Poslední aktualizace: 1. září 2005 - Revize: 4.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C++ 1.5 Professional Edition
  • Microsoft Visual C++ 1.51
  • Microsoft Visual C++ 1.52 Professional Edition
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 4.1 Subscription
  • Microsoft Visual C++ 5.0 Enterprise Edition
  • Microsoft Visual C++ 6.0 Enterprise Edition
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual C++ 6.0 Professional Edition
  • Microsoft Visual C++, 32-bit Learning Edition 6.0
Klíčová slova: 
kbmt kbcode kbcompiler kbcpponly kbinfo KB126845 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:126845

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com