---
title: "hur ladda dll?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/79977-hur-ladda-dll"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "puhbjörn"
published: "2003-06-17T19:07:04.000Z"
updated: "2003-06-18T21:01:51.000Z"
replies: 7
views: 395
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/79977-hur-ladda-dll"
---

# hur ladda dll?

## #1 — puhbjörn, 2003-06-17T19:07Z

Hur gör jag för att ladda en dll fil ?

Permalänk: https://www.webforum.nu/p/79977

## #2 — SPiN, 2003-06-17T22:14Z

Om jag inte missminner mig...

```
#import "MyDLL.dll";
...
```

Permalänk: https://www.webforum.nu/p/1088452

## #3 — puhbjörn, 2003-06-18T09:21Z

När jag försöker kompilera så kan den inte hitta dll filen, jag har lagt den i mappen med källkoden, release och debug men det funkar inte så var ska jag lägga den?

Permalänk: https://www.webforum.nu/p/1088610

## #4 — niko, 2003-06-18T10:08Z

> så var ska jag lägga den

Nånstans i pathen borde funka bra. I *\\system32*, tex. Fast en annan fråga: Är det en Windows-dll eller en ActiveX-dll du försöker länka? *\#import* förutsätter nog att filen har ett inbyggt typelib (ActiveX-dll).

Permalänk: https://www.webforum.nu/p/1088641

## #5 — puhbjörn, 2003-06-18T10:15Z

det är en win dll som jag gör själv. Hur gör jag en activex dll då?

detta är felmeddelandet som jag får:
fatal error C1083: Cannot open type library file: 'game.dll': Ett fel inträffade när ett typbibliotek eller en DLL-fil skulle läsas.

Permalänk: https://www.webforum.nu/p/1088648

## #6 — niko, 2003-06-18T16:45Z

Det finns två sätt att länka in en Windows-dll: *explicit* och *implicit* länkning.

Explicit länkning:

```
typedef void (*LPDINFUNKTION)(void);
LPDINFUNKTION Dinfunktion;
HINSTANCE hDll;
hDll = LoadLibrary("<eventuell sökväg>\dindll.dll");
if (hDll) {
	//Dll:en är laddad. Hämta ut funktionen.
	Dinfunktion = (LPDINFUNKTION)GetProcAddress(hDll,"Dinfunktion");
	//Anropa funktionen om den hittades.
	if(Dinfunktion)
		Dinfunktion();
	else
		//Funktionen gick inte att ladda.
	//Ladda ur dll:en om du inte behöver den mer.
	FreeLibrary(hDll);
}
else
	//dll:en gick inte att ladda.
```

.. om det finns en void-funktion *Dinfunktion* utan inparametrar i dll:en som du vill komma åt. Du måste alltså ändra 
definitionen av LPDINFUNKTION så att det stämmer med hur din funktion ser ut. (Sen beror det lite på hur du definierat dina 
funktioner i dll:en. Om du tex använder \__stdcall utan def-fil så kan det bli problem.)

Eftersom du själv gjort dll:en så kan du också använda *explicit* länkning, dvs du tar med dll:ens header- och lib-fil när du 
kompilerar och deklarerar funktionerna du vill importera som *\__declspec(dllimport)* (svårare att visa med exempel).

> Hur gör jag en activex dll då?

Det beror på miljön/kompilatorn du använder. Det brukar finnas en projekttyp som heter COM- eller ActiveX-Dll.

Permalänk: https://www.webforum.nu/p/1088935

## #7 — puhbjörn, 2003-06-18T16:47Z

> Det beror på miljön/kompilatorn du använder. Det brukar finnas en projekttyp som heter COM- eller ActiveX-Dll.

Jag använder Visual C++ 6.0.

Permalänk: https://www.webforum.nu/p/1088936

## #8 — niko, 2003-06-18T21:01Z

> Jag använder Visual C++ 6.0.

Jag också.

Permalänk: https://www.webforum.nu/p/1089167

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/79977-hur-ladda-dll
