Jak używać GDI+? Funkcja nie chce mi działać.

Jak używać GDI+? Funkcja nie chce mi działać.
SM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Witam.

Potrzebuję napisać pewną wstawkę dll do Autohotkeya która będzie mi rysować sporo linii za pomocą GDI+. W samym AHK nie ma żadnych problemów po za wydajnością jednak kiedy wstawiam ten kod do CodeBlock'a to ciągle pisze mi, że GdipDrawLine nie jest zadeklarowany. Już wcześniej w podobny sposób pisałem dll do AHK lecz nigdy jeszcze nie wykorzystywałem GDI w tych wstawkach a w języku c/c++ nie ogarniam jeszcze za bardzo wszystkiego.

Kopiuj
#include <windows.h>
#include <objidl.h>
#include <gdiplus.h>

void DrawFrq(float abuf[], int n, int w, int pGraphics, int pPen){
    for(int i=0;i<n;i++){
        float x = (float)w/n*i;
        GdipDrawLine(pGraphics, pPen, x, 200, x, abuf[i]);
    }
    return;
}
Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

#include <Gdiplusflat.h>?

SM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

fatal error: Gdiplusflat.h: No such file or directory

a jak daje #include <gdiplus/Gdiplusflat.h> to jest to samo co na początku czyli

C:\Users\xXx\Desktop\Błażej\fft\code\c\dll2\dll2\main.cpp|9|error: 'GdipDrawLine' was not declared in this scope

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Czy jest jakiś powód dla którego tak kombinujesz, zamiast użyć GDI+ normalnie tak jak się go używa?

SM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
0

Co to znaczy normalnie? Jak już wspomniałem w c++ jestem cienki a to co wstawiłem to to jak mi się wydawało, że tak powinien wyglądać kod.
A to co kombinuje to narysowanie wielu linii wykorzystując gotowe elementy GDI+ utworzone w Autohotkey'u w celu poprawy wydajności.

06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0
Kopiuj
#include <Gdiplusflat.h>
...

DllExports::GdipDrawLine(pGraphics, pPen, x, 200, x, abuf[i]);

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.