Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

:( Problem z kodem C++ [Winsock]


Rekomendowane odpowiedzi

Opublikowano

Proszę moderatora o usunięcie z nazwy tematu ,, [Winsock] ''

 

Witam wszystkich mam problem z kodem otóż gdy kompiluje i uruchamiam to nie chce znaleźć funkcji w bibliotece.

Kod:

#include <GL/glew.h>
#include <GLFW\glfw3.h>

#include <windows.h>
#include <iostream>
#include <string>

using namespace std;

typedef double(*MYPROC)(double);

MYPROC FunkcjaKwadrat;

int main()
{

    DWORD L;

    HINSTANCE hDll;
    hDll = LoadLibrary(L"Biblioteczka.dll");

    if (hDll != NULL)
    {
        FunkcjaKwadrat = (MYPROC)GetProcAddress(hDll, "Start");

        if (FunkcjaKwadrat != NULL)
        {
            L = (FunkcjaKwadrat)(256);

            GLFWwindow* window = glfwCreateWindow(640, 480, "My Title", glfwGetPrimaryMonitor(), NULL);

            printf("Działa");

        }
        else { printf("Nie znaleziono wymaganej funkcji w DLL."); }

        FreeLibrary(hDll);
    }
    else { printf("Nie znaleziono pliku DLL"); }

    system("pause >nul");

    return 0;
}

Fragment kodu H DLL

#include <iostream>

using namespace std;

#ifndef _MAIN_H_
#define _MAIN_H_

#if defined DLL_IMPORT
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

namespace Biblioteczka
{
	class Functions
	{
	public:

		static EXPORT int Start();

		static EXPORT int Connect();

		(....)
		
	};
}

#endif

Proszę o pomoc każdy komentarz otrzyma LIKE


int o = 1, y = 1;

while(o == y && y < o && o < y){

printf("Co ja tworze....");

}

Opublikowano

Zamiast GetProcessAddress, użyj headera z dll'a a makro EXPORT daj przed nazwą klasy a nie przy metodach. Wtedy tylko wystarczy dodać do linkera wygenerowanego liba z definicjami z DLL'a i powinieneś być móc stworzyć instancję klasy Functions w Twojej bince bez żadnych problemów. Dynamiczne importowanie jest głupie jeśli masz pliki nagłówkowe.

YOU MUST DIE

- Ganon, Koridai

Opublikowano

Bardzo dziękuje za pomoc i mam kolejne pytanie jak usunąć ten problem ponieważ mało ogarniam dawno nie pisałem w C++

1>biblioteczka.cpp(133): warning C4273: "Biblioteczka::Functions::Connect" : niespójne powiązanie biblioteki dll
1>          c:\users\lenovo\documents\visual studio 2013\projects\biblioteczka\biblioteczka\biblioteczka.h(23): zobacz poprzednią definicję "Connect"

Plik CPP

int Functions::Connect(){
[....]

Plik H

Ten co wyżej [Problem w DLL]


int o = 1, y = 1;

while(o == y && y < o && o < y){

printf("Co ja tworze....");

}

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...