C++ String in DLL

Bumbbleman

Erfahrenes Mitglied
Hallo!
Ich habe folgendes Problem: Ich bin im begriff eine DLL zu erstellen aber die Funktion, die ich exportieren möchte gibt einen String zurück oder versucht es. Aber der Compiler gibt einen Fehler aus, der besagt, dass der Datentyp "String" nicht kompatible ist.
Wie kann ich das Problem lösen?

mfg
 
Hier ist mein Quellcode:
C++:
string passwort_stern();

extern "C" __declspec(dllexport)string passwort_stern();

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}



string passwort_stern()
{
  string pass;
  char temp;
  char passwort[10];
  char passwort_1[10];
  int index = 0;
  int zaehler = 0;

  while ( ( temp = getch() ) != 13 )
  {
    if ( temp == VK_BACK )
    {
      /////////ausgabe manipulieren////////////////
      cout << "\b";
      zaehler -= 1;
      ////////////////variablen aendern/////////////////
      passwort[zaehler - 1];
      for ( int q = 0; q < zaehler; ++q )
      {
        passwort_1[q] = passwort[q];
      }
      passwort[zaehler] = '\0';
      for ( int q = 0; q < zaehler; ++q )
      {
        passwort[q] = passwort_1[q];
      }

      index -= 1;
    }
    else
    {
      cout << "*";
      passwort[index++] = temp;
      passwort[index] = '\0';
      zaehler += 1;
    }
  }
  pass = passwort;
  return pass;
}
Ich hoffe jetzt könnt ihr mir besser helfen.
mfg
 
Hatte ich ja eigentlich auch schon oben beschrieben aber hier:

warning C4190: 'passwort_stern' hat C-Bindung angegeben, aber gibt UDT 'std::basic_string<_Elem,_Traits,_Ax>' zurück, was mit C inkompatibel ist

und seit neustem auch :
'passwort_stern': Neudefinition; unterschiedliche Bindung
 
Zurück