Import dll do me dll – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Import dll do me dll – C / C++ – Fórum – Programujte.comImport dll do me dll – C / C++ – Fórum – Programujte.com

 

VladislavK0
Super člen
21. 3. 2017   #1
-
0
-

Zdravim v cecku uz jsem strasne dlouho nedelal a ted bych potreboval poradit jak do me trochu spesl dll knihovny (psana C++) naimportovat jinou dll knihovnu tyicky to bude user32.dll. pro priklad kernel32 chtel bych jenom pipnout

Takze C# 

[DllImport("kernel32.dll")]
public static extern bool Beep(int freq, int dur);

no nekde bych to Beep zavolal

A stejne bych to potreboval zavolat z  me dll

 definice me funkce v me dll

#define MT4_EXPFUNC __declspec(dllexport)

MT4_EXPFUNC void __stdcall Piskni(int freq, int dur){
    //a tady bych potreboval zavolat Beep(1000,1000);
}

toto by mi stacilo - jak na to prosim, 

Nahlásit jako SPAM
IP: 37.48.49.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
VladislavK0
Super člen
21. 3. 2017   #2
-
0
-

Nasel jsem to reseni

typedef void (*FNPTR)(int freq, int dur);
HMODULE lib=LoadLibrary("kernel32.dll");
FNPTR Bp=(FNPTR)GetProcAddress(lib,"Beep");

MT4_EXPFUNC void __stdcall Piskni(int freq, int dur){
	Bp(freq,dur);
}

volam to pro test ze C# takto

[DllImport(@"C:\Users\Vlada\Documents\Visual Studio 2010\Projects\FX2\Debug\clk.dll")]
public static extern void Piskni(int freq, int dur);

 static void Main(string[] args)
 {
     Piskni(800,1000);
     DalsiKod(); // ke kteremu se to ale uz nedostne
 }

Ma to chybu - Dalsi kod uz se nevykona proteze to celou konzolovku zavre.

Poradi nekdo?

Nahlásit jako SPAM
IP: 37.48.49.–
Manželka programátora pošle svého muže koupit chleba s dovětkem kdyby měly housky přines jich deset! Co přinese programátor??
Ovrscout
~ Anonymní uživatel
113 příspěvků
21. 3. 2017   #3
-
0
-

#2 VladislavK
Tipnul ze ten ukazatel na winapi funkci by mnel taky obsahovat volací konvenci pro winapi.


typedef void (WINAPI *FNPTR)(int freq, int dur);
nebo
typedef void (__stdcall *FNPTR)(int freq, int dur);

Nahlásit jako SPAM
IP: 193.165.79.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

Dll — založil paking

DLL a c++ — založil Míra

Dll — založil Tomass

C# a dll — založil Grungy

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý