Rád bych využil fci v DLL třetí strany.
Mám k dispozici DLL a jeho map, kde vím jaké fce obsahuje
Address Publics by Value Rva+Base
0001:00000008 CRT_SearchCharTable 10001008 f
0001:000005e4 CRT_SearchRdsTable 100015e4 f
žel nevím jaké jsou vstupní parametry a výstup, ale z exe který knihovnu používá a jeho mapy vím, že volá tyto fce
0001:00000920 ?SearchRdsTable@@YAPA_WG@Z 00011920 f
0003:000340ec ?CRT_SearchRdsTable@@3P6APA_WG@ZA 000a00ec
když provedu undecorate, zjsitim, že
@@YAPA_WG@Z = wchar_t * __cdecl a(unsigned short);
@@3P6APA_WG@ZA = wchar_t * (__cdecl* a)(unsigned short)
Vytvořil jsem si malý testik, ale nebude to to správné, nedostávám žádnou informaci.
Nemám s tím někdo zkušenost, jak fci z knihovny správně zavolat z těchto dostupných informací
HINSTANCE g_pRdsTable = LoadLibrary(L"RdsTable.dll");
if (g_pRdsTable) {
typedef wchar_t * (__cdecl* fce)(unsigned short a);
fce CRT_SearchRdsTable = (fce) GetProcAddress(g_pRdsTable, _T("CRT_SearchRdsTable"));
if (CRT_SearchRdsTable) {
LPTSTR Res = CRT_SearchRdsTable(0);
MessageBox(Res,_T("RDS"), MB_OK);
}
}
Díky