そのため、Windows でクリップボードの内容を取得しようとしています。テンプレートを使用して取得するタイプは何でもかまいませんが、ビルドしようとすると、Visual Studio 2013 RC が次のエラーを送信します。
Error 1 error C2440: 'return' : cannot convert from 'char *' to 'double'
Error 2 error C2440: 'return' : cannot convert from 'double' to 'char *'
Error 3 error C2440: 'return' : cannot convert from 'int' to 'char *'
Warning 4 warning C4244: 'return' : conversion from 'double' to 'int', possible loss of data
Error 5 error C2440: 'return' : cannot convert from 'char *' to 'int'
コードは次のとおりです。
template<typename tn>
tn GetClipboardContents()
{
HANDLE h_clip;
double d_clip;
int i_clip;
char* str_clip;
if (OpenClipboard(NULL))
{
h_clip = GetClipboardData(CF_TEXT);
if (typeid(tn).name() == "double")
{
d_clip = atof((char*)h_clip);
}else if (typeid(tn).name() == "int"){
i_clip = atoi((char*)h_clip);
}else{
str_clip = (char*)h_clip;
}
CloseClipboard();
}
if (typeid(tn).name() == "double")
return d_clip;
else if (typeid(tn).name() == "int")
return i_clip;
else
return str_clip;
}
前もって感謝します。