Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Zapisywanie tekstu ze zmiennej do schowka

Ostatnio zmodyfikowano 2013-11-30 14:04
Autor Wiadomość
mgrD
Temat założony przez niniejszego użytkownika
[C++] Zapisywanie tekstu ze zmiennej do schowka
» 2013-11-30 00:21:44
Witam, działam sobie kulturalnie na klasie string i zaciekawiła mnie opcja przypisanie wartości ze zmiennej string do schowka. Zapewne da się to zrobić lecz niestety nie słyszałem o tym jeszcze - może ktoś mnie nakierować co powinienem przeczytać/wybadać?
P-97879
DejaVu
» 2013-11-30 00:27:10
P-97880
mgrD
Temat założony przez niniejszego użytkownika
» 2013-11-30 00:52:41
Dało by radę jakiś przykład z tym?

C/C++
BOOL bRes = OpenClipboard( NULL );
std::string * buffer;
EmptyClipboard();
HGLOBAL clipBuffer = GlobalAlloc( GMEM_DDESHARE, test.size() );
buffer =( std::string * ) GlobalLock( clipBuffer );

GlobalUnlock( clipBuffer );
SetClipboardData( CF_TEXT, clipBuffer );
CloseClipboard();

I niestety nie wiem jak przypisać text ze zmiennej test typu string do schowka. Jak dam tak jak to zrobiłem to w schowku zamiast "test123" mam "0>`"
P-97881
DejaVu
» 2013-11-30 04:14:47
C/C++
std::string _sInput = "abc";
//...
HGLOBAL hNewClipboardData =::GlobalAlloc( GMEM_MOVEABLE, sizeof( char ) *( _sInput.size() + 1 ) );

if( hNewClipboardData )
{
    LPSTR strNewClipboardText =( LPSTR ) GlobalLock( hNewClipboardData );
    ::memcpy( strNewClipboardText, _sInput.c_str(), sizeof( char ) *( _sInput.size() + 1 ) );
    GlobalUnlock( hNewClipboardData );
    ::SetClipboardData( CF_TEXT, hNewClipboardData );
} //if
P-97882
mgrD
Temat założony przez niniejszego użytkownika
» 2013-11-30 12:43:57
Dzięki lecz jest jakiś błąd w lini
::memcpy( strNewClipboardText, test.c_str(),( sizeof( char ) *( test.size() + 1 ) );

error:
\main.cpp||In function 'int main()':|
\main.cpp|31|error: invalid conversion from 'const void*' to 'void*' [-fpermissive]|
\include\string.h|41|error:   initializing argument 1 of 'void* memcpy(void*, const void*, size_t)' [-fpermissive]|
||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===|

Kod wkleiłem ten co dałeś tylko zmieniłem nazwę obiektu(?) string na "test".
P-97887
DejaVu
» 2013-11-30 12:59:49
Poprawiłem kod bo złe rzutowanie było.
P-97890
mgrD
Temat założony przez niniejszego użytkownika
» 2013-11-30 13:25:25
Dziękuję lecz napisu ze zmiennej nie mam w schowku niestety.
P-97893
DejaVu
» 2013-11-30 13:37:38
No bo to nie jest kompletny kod, tylko fragment kodu jak przerzucić tekst do schowka (tek kod zakłada, że się wie jak przygotować schowek do pracy i jak zakończyć z nim pracę).
P-97896
« 1 » 2
  Strona 1 z 2 Następna strona