Я хотел бы знать, как избавиться от декораций вокруг функции класса, который мне нужно экспортировать в DLL. Например, когда у вас есть что-то вроде этого:
extern "C"
{
__declspec(dllexport) int __cdecl getWhatever();
}
И что вы проверите с помощью dependencyWalker, имя экспортируемой функции, у вас будет точно такое же имя функции.
Но если вы сделаете что-то похожее с классом, будет набор символов, украшающий функцию, подобную этой:
extern "C"
{
class __declspec(dllexport) Toto
{
__cdecl Toto(){}
__cdecl ~Toto(){}
int __cdecl getBlob(float y){return (int)y;}
};
}
В dependencyWalker вы увидите это:
?? 0Toto @@ AAE @ XZ
?? 1Toto @@ AAE @ XZ
?? 4Toto @@ QAEAAV0 @ ABV0 @@ Z
? GetBlob @ Тото @@ AAAHM @ Z
Так, как сделать его чистым, как с процедурной функцией?
Спасибо