отсутствуют экземпляры перегруженная функция strstr
Собстна проблемка)
Изначальный код на "С"
#include <Windows.h>
#include <shlwapi.h>
BOOL APIENTRY DllEntryPoint(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
if (dwReasonForCall == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(hModule);
TCHAR* cmdline = GetCommandLine();
if (StrStr(cmdline, "-one") || StrStr(cmdline, "-one1") || StrStr(cmdline, "-one2")) {
LoadLibrary("client.dll");
}
}
return TRUE;
}
Переписал на "С++" (хоть и разница не большая)
#include <Windows.h>
#include <shlwapi.h>
BOOL APIENTRY DllEntryPoint(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
if (dwReasonForCall == DLL_PROCESS_ATTACH) {
DisableThreadLibraryCalls(hModule);
TCHAR* cmdline = GetCommandLine();
if (strstr(cmdline, "-one") || strstr(cmdline, "-one1") || strstr(cmdline, "-one2")) {
LoadLibrary("client.dll");
}
}
return TRUE;
}
И получил ошибки
E0304 отсутствуют экземпляры перегруженная функция "strstr", соответствующие списку аргументов
E0304 отсутствуют экземпляры перегруженная функция "strstr", соответствующие списку аргументов
E0304 отсутствуют экземпляры перегруженная функция "strstr", соответствующие списку аргументов
E0167 аргумент типа "const char *" несовместим с параметром типа "LPCWSTR"
Нигде так и не нашёл подробный разбор решения данных ошибок, прошу Вашей помощи!
Источник: Stack Overflow на русском