Me tira APPCRASH muy random cuando uso esto
Código:
// otra funcion...
char copy[64];
strncpy(copy, getClipboard(), 63); // Crash
// code...
char *getClipboard()
{
char *strData;
if(OpenClipboard(NULL))
{
HANDLE hClipboardData = GetClipboardData(CF_TEXT);
if(hClipboardData != nullptr)
{
char *pchData = static_cast<char*>(GlobalLock(hClipboardData));
if(pchData != nullptr)
strData = pchData;
else strData = "\0";
GlobalUnlock(hClipboardData);
}
else strData = "\0";
CloseClipboard();
}
return strData;
}
Creo que es porque no estoy devolviendo correctamente el puntero de una cadena vaciá,como se hace ?,hay algún otro error o algo para mejorar ?.char copy[64];
strncpy(copy, getClipboard(), 63); // Crash
// code...
char *getClipboard()
{
char *strData;
if(OpenClipboard(NULL))
{
HANDLE hClipboardData = GetClipboardData(CF_TEXT);
if(hClipboardData != nullptr)
{
char *pchData = static_cast<char*>(GlobalLock(hClipboardData));
if(pchData != nullptr)
strData = pchData;
else strData = "\0";
GlobalUnlock(hClipboardData);
}
else strData = "\0";
CloseClipboard();
}
return strData;
}