wnsprintfA(reinterpretcast(ebp2) + 0xfffffbf8, 0x400, "\"%s\" -%s=%s", ecx26, "LANGUAGEEXT", edi28, 68);


@Kiciuk: mozliwe ze ktos kiedys printowal do tego jeszcze 68 i tego nie sprzatnal lub dekompilator dorzucil jeden argument z czapy.
  • Odpowiedz
Czy ktoś kiedyś słyszał o komilatorze dla C/C++ do jakiegoś uniwerstalnego bytecodu, który następnie mógłbybyć konwertowany do arm/x86 itd? Wydaje mi się, że to dość proste (technicznie) do zrobienia, ale nie mogę nic gotowego znaleźć.

#programowanie #c #cpp #c++
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

LLVM od początku to potrafił, na tym polega fenomen LLVM, dzięki któremu tak łatwo w nim zaimplementować kolejne języki programowania. Używanie tego w praktyce jednak nie jest takie łatwe. Może zacznij od zdefiniowania tego, co chcesz osiągnąć.
  • Odpowiedz
@dad1111: Oczywiście że nie przechowuje, tego nawet drzewo AST po parsowaniu nie przechowuje.
Generalnie LLVM wogóle nie posiada w sobie nawet wyrażeń stałych tylko same wartości, które oczywiście dalej mogą być optymalizowane poprzez filtry w LLVMce.
Jedyne rozwiązanie które widzę to podmiana globalnej zmiennej na wartość stałą i uruchomienie optymalizacji na zmodyfikowanym kodzie jeszcze raz.
Bilioteka LLVMki ma wszystko co potrzebujesz, parser i writer kodu IR, framework do filtrów i
  • Odpowiedz
Mirki, próbuję napisać w C++ program, który będzie automatycznie pobierał dane ze stron internetowych (docelowo ebay). Z którą bym się nie połączył, dostaję błąd 400 - Bad Request Error. Moje zapytanie wygląda tak:
GET / HTTP/1.1\n\n
Co trzeba wysłać, żeby to jakkolwiek działało? Pytanie może głupie, ale jeżeli chodzi o zagadnienia związane z siecią jestem kompletnie zielony ( ͡° ʖ̯ ͡°)
#programowanie #siecikomputerowe #
  • 24
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Właśnie udostępniłem oprogramowanie do sterowania frezarką CNC o nazwie Frezia bezpośrednio z poziomu Raspberry Pi.

Repozytorium github https://github.com/pantadeusz/raspigcd
Wideo z działania https://youtu.be/KTBCnEE6s4s

Oprogramowanie akceptuje uproszczony G-CODE i emituje sygnały na piny Raspberry za pomocą bezpośredniego dostępu do rejestrów. Wyróżnia się tym, że nie wymaga dodatkowego mikrokontrolera typu Arduino (czy innych wynalazków z którymi należy się komunikować przez USB/UART/LPT).
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@CppPolska: Chciej pisać o C++, znacznij od make... ¯\_(ツ)_/¯

Kurde, kisne z tego artykułu:

choć - w wielu przypadkach - może to być nader skomplikowane

Nie to że zwykły bash zrobi dokładnie to samo i jest dużo prostszy. Jedyne czym się różni to szybkość, pomijanie już skompilowanych kawałków i równoległe budowane,
  • Odpowiedz
@CppPolska: Ale bym sobie tak takiego bloga popisał, ale nie mam kiedy o tym, że mi się nie chce to już nie wspominając :(

I tak od lat żałuje, że dalej nie zrobiłem (,)

Szanuję za CLion i całkiem dobry artykuł!
  • Odpowiedz
Mam tablicę
char tab[6] = "dasco"

Żeby wypisać tablicę na ekran zaczynając od np. 2 znaku robię tak:
cout << tab+1;

Czy
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@trevoz: W zasadzie ten trick odnosi się do natury samej tablicy. Tablica jest zwyczajnie stałym wskaźnikiem do znaków. Przesuwając adres o jeden znak tak naprawdę robisz podciąg tej tablicy.
  • Odpowiedz
hej Mircy #naukaprogramowania #cpp
Czy da się jakoś na macOS skompilować program ze statycznymi bibliotekami napisanymi pod Linuxa, tak aby program działał na Linuxie?
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

konto usunięte via Wykop Mobilny (Android)
  • 0
@Pan_Tomasz: upraszczając, flaga to sposób na ciasne upakowanie w pamięci wielu wartości bool. Służą często do sygnalizacji, że coś się dzieje, jest jakiś stan. Jeżeli chcesz dokładnie wiedzieć, co to jest, odpowiedź brzmi tak, jak zawsze: książki, artykuły, dokumentacja, Google
  • Odpowiedz
@Cooltec: Visual Studio jak najbardziej no ale to tylko pod Windowsa. CodeBlocks nie jest taki zły ale już go 4 lata nie uzywałem więc niewiem czy coś poprawili ale się trasznie często Craszował.
  • Odpowiedz
@lionbest: oki, dziękuję! Chyba dam sobie spokój z tym eclipsem... Stawiam pierwsze kroki dopiero, i uruchomienie hello world, mnie przerosło (,), a taki visual studio już dawno się ze mną przywitał.
Dziękuję.
  • Odpowiedz
Hej. Mam problem z wyświetleniem wartości bajta w systemie dziesiętnym. W skrócie - koniecznie wykorzystując unie muszę zinterpretować wartość int na pojedyncze bajty. Dla niektórych wartości działa to dobrze, lecz dla wartości int np.255 program wyświetla mi -1 0 0 0 jako wartości dziesiętne bajtów. Dlaczego nie wyświetli wartości 255 skoro wykorzystując %d powinno to interpretować jako wartość dodatnią dla tak małej wartości. Zamienienie w kodzie %d na %u tylko pogarsza sprawę.
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#cpp #programowanie

Czy ktoś jest mi w stanie wytłumaczyć co się dzieje pod maską takiego rozwiazania? Zmienna 'flag' jest przypisywana w innym miejscu w kodzie, przed wywołaniem tej metody

long flag;

bool
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Lacwik: Niejawna konwersja typów:
– value = flag konwertuje long na char
– value >>=7 konwertuje char na int i z powrotem
– value & 0x01 konwertuje char na int
– return konwertuje int na bool
  • Odpowiedz
@Lacwik: raczej od 8 bitu, bo przesuwasz o 7 bitów w prawo, czyi tym „na samym końcu” będzie 8 bit. Równie dobrze można by to skrócić do return value & 0x08;.

@KolejnyWykopowyJanusz zwracane jest całe 8 bitów (albo nawet 64 bity, zależy od procesora i sytuacji), tylko zapewniona jest wartość 0 albo 1, bool zajmuje nadal 1 bajt, tylko pozwala w sobie zapisać 0 (false) albo cokolwiek innego
  • Odpowiedz
cpp, mam:

string a="90224";
int b;

I teraz chcę przypisać parametrowi b drugi wyraz tablicy a.
Próbowałem:
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Primbledon: przypisując b = a[2] dostaniesz kod ASCII cyfry, odejmując od kodu znak '0' (czyli odejmujesz kod znaku zera) policzysz w jakiej kolejności po zerze występuje ten znak, a w tablicy ASCII cyfry są ułożone po kolei 0...9
  • Odpowiedz