Aktywne Wpisy
rysio77 +833
Życie jest p------e. Brat 28 zdecydował zakończyć swoje życie. Mama bez pęcherza (rak pęcherza), w trakcie immunoterapii, leży w szpitalu po polekowym uszkodzeniu wątroby, cudem żyje, ma silną wolę życia, mimo tego wszystkiego.
Od tygodnia codziennie jestem w szpitalu, akurat mam urlop, przepadła mi wycieczka (4k pln utopione, dobrze, że tylko tyle), sam już jestem wykończony, bo ciągle żyłem śmiercią brata, a od tygodnia się modliłem o przeżycie mamy. Brat też mógł
Od tygodnia codziennie jestem w szpitalu, akurat mam urlop, przepadła mi wycieczka (4k pln utopione, dobrze, że tylko tyle), sam już jestem wykończony, bo ciągle żyłem śmiercią brata, a od tygodnia się modliłem o przeżycie mamy. Brat też mógł

remlezar +374
#logikarozowychpaskow #logikaniebieskichpaskow #feminizm #rownouprawnienie #rower #p0lka
Dla mężczyzny wyjście na rower to po prostu kwestia biologiczna, rower jak rower. Dla kobiety to metafizyka, spotkanie z najwyższym… ( ͡° ͜ʖ ͡°)
Dla mężczyzny wyjście na rower to po prostu kwestia biologiczna, rower jak rower. Dla kobiety to metafizyka, spotkanie z najwyższym… ( ͡° ͜ʖ ͡°)
źródło: 1000005645
Pobierz




Pracujac sobie na Macu, bez problemu przeszlo mi:
extern "C" std::vector> exportedMethod() {return std::vector>({std::make_shared()});
}
Jednakze pod windowsem dostaje komunikat o bledzie:
error C2526: 'exportedMethod': C linkage function cannot return C++ class 'std::vector,std::allocator>>'Probowalem dorzucic
declspec(dllexport), aextern "C"zmienilem naextern "C++". Niestety, pomimo zmian, metoda pobierajaca funkcje z dllki zwraca mi NULL:HINSTANCE libraryHandle = LoadLibrary(filePath.c_str());auto exportedMethod = (exportedMethodt_t)GetProcAddress(libraryHandle, "exportedMethod")
Czy mamy jakies rozwiazanie tego problemu? Nie udalo mi sie zbytnio nic wygooglowac niestety :(
extern "C++"?@CppPolska: A próbowałeś wywołać po tym GetLastError?
A GetProcAdress pewnie nie działa, bo zamiast "exportedMethod" masz zaczarowaną nazwę: https://docs.microsoft.com/en-us/cpp/build/reference/decorated-names?view=msvc-160
Przecież komunikat błędu mówi chyba wszystko?
https://stackoverflow.com/questions/8130602/using-extern-template-c11
@CppPolska:
Problem najwyraźniej wygląda tak, że kompilator nie lubi klasy (C++) zmieszanej z extern "C". extern "C" używany jest przy kodzie głównie po to, żeby nie było typowego dla C++ manglingu nazwy funkcji przy tworzeniu symbolu i żeby się dało do tej funkcji odwołać z GetProcAddress na przykład, co
Tak na dobrą sprawę jak dostaniesz dekorowaną nazwę to możesz ją po prostu wkleić tam gdzie używasz GetProcAddress i pewnie wyjdzie na to samo.
Z takich innych sposobów na dobranie się
Troche doedukowalem sie, faktycznie lepiej jest korzystac wylacznie z zestawu typow kompatybilnych z C - nie bawimy sie wtedy w roznice miedzy layoutem plikow .exe i .dll. Do tego nie bedziemy przywiazani do konkretnych kompilatorow (exec i dll moga wtedy byc kompilowane pod innymi kompilatorami - dobrze kminie?). Sam Core Guidelines tak zaleca, i brzmi to moim zdaniem