C++ panoya metin kopyalama

Direk cin kullanma, sadece kelime okur, cümle almak için verdiğim yöntemi kullan.

C++:
#include <iostream>
#include <string>
#include <windows.h>

bool SetClipboard( const std::string &data ) {

    auto size = data.size() + 1 ;
    auto pGlobal = GlobalAlloc( GMEM_MOVEABLE, size);

    if (!pGlobal) {
       
        return false;
    }

    OpenClipboard(0);
    EmptyClipboard();  

    auto pLock = GlobalLock(pGlobal);

    if (!pLock) {
        CloseClipboard();
        return false;
    }

    CopyMemory( pLock, data.c_str(), size );

    GlobalUnlock( pGlobal);

    SetClipboardData( CF_TEXT, pGlobal);

    CloseClipboard();

    GlobalFree(pGlobal);

    return true;
}

int main() {

    std::string input;

    std::cout << "input: ";
    getline(std::cin, input);
   
    SetClipboard(input);

    return 0;
}
 

Dosya Ekleri

  • hata.PNG
    hata.PNG
    143,4 KB · Görüntüleme: 30
İlk olarak Dev C++'dan kurtul. vscode + msys2 kur. Derleme işlerini konsoldan manuel olarak yap. örn g++ main.cpp -std=c++11

Hatalara gelecek olursak değişkenlerin scope içinde tanımlı olmadığını iddia ediyor, tür ismi olmadığını da söylemiş. Kodları aynen yazıp derlediğinde bunu diyorsa geliştirme ortamın saçmalıyor demektir aksi halde bende de sorun çıkması gerekirdi.
 
İlk olarak dev C++'dan kurtul. VS Code + msys2 kur. Derleme işlerini konsoldan manuel olarak yap. Örneğin g++ main.cpp -std = C++11

Hatalara gelecek olursak değişkenlerin scope içinde tanımlı olmadığını iddia ediyor, tür ismi olmadığını da söylemiş. Kodları aynen yazıp derlediğinde bunu diyorsa geliştirme ortamın saçmalıyor demektir aksi halde bende de sorun çıkması gerekirdi.

Dev-C++ vs gibi karmaşık değildi yani modül aktarmak için aynı klasöre atak falan yeterliydi ondan geçmiştim sağ olun.
 
Hocam C++ 11 ve C++ 20 farkları nedir? Hız farkı var mıdır?
C++ durduğu yerde duran bir dil değil, sürekli geliştirilmeye devam ediliyor, dile yeni özellikler ekleniyor. Mesela auto, lambda fonksiyonlar, range based for loop gibi özellikler eklendi, thread library geldi vs..

Sen dediğimi yaptın mı?
 
Son düzenleme:
C++ durduğu yerde duran bir dil değil, sürekli geliştirilmeye devam ediliyor, dile yeni özellikler ekleniyor. Mesela Auto, lambda fonksiyonlar, range based for loop gibi özellikler eklendi, thread library geldi vs.

Sen dediğimi yaptın mı?

Yaptım hocam C++ 11 deyim oldu ama ben bir library buldum clipboard<<"kopyalama mesajı"; yazınca kopyalıyor ve tüm platformlarda çalışıyor.Linki bırakayım clipboardXX.

Örnek kod :
#include "clipboard.hpp"
#include <string>

int main() {
clipboardxx::clipboard clipboard;

// copy
clipboard << "text you wanna copy";

// paste
std::string paste_text;
clipboard >> paste_text;
}
 
Evet çapraz platform derlemek için hem xserver hem de windows apiyi içeren bir sınıf tasarlamış, işini gorur. Mantık aynı zaten kodları incelediysen gormussundur.
 

Geri
Yukarı