j'ai un exe chargeant un dll. J'ai écrit les deux.chaîne attachée par dllexported est corrompue
Je dllexporting une fonction foo qui retourne un std :: wstring.
tout ce qu'il fait est de dire
std :: wstring bla = L "rgjwgfw";
return blah.append(L"hey");
dans l'exe où j'importe foo, la chaîne est corrompue. dès que je reviens de la fonction où j'appelle foo je reçois des assertions échouées. Parfois, je reçois un message disant que Windows a déclenché un point d'arrêt dans foo.exe. cela peut être dû à une corruption du tas, etc ... Cela peut aussi être dû à un utilisateur appuyant sur f12 alors que foo.exe a le focus. etc ....
une idée pourquoi cela se produit? cela ne se produit pas si je supprime la ligne append de foo et jsut renvoie la chaîne d'origine, il n'y a pas de problèmes.
merci
Êtes-vous sûr que les deux DLL sont compilées avec les mêmes options (release ou debug)? Les modèles STL peuvent avoir des tailles différentes –