C++ dll použita v Delphi – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

C++ dll použita v Delphi – Delphi – Fórum – Programujte.comC++ dll použita v Delphi – Delphi – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Zeel
~ Anonymní uživatel
18 příspěvků
9. 12. 2013   #1
-
0
-

Zdarec, mám takový menší problém s knihovnami, které jsou psány jinde jinde než v Delphách. Mám napsanou velmi jednoduchou knihovnu v C++, která slouží pouze jako cvičná, ale prostě mi to nějak nejde připojit s Delphama.  

********************DLL napsána v C++*****************************

setbit - zmení hodnotu bitu v bajtu

vstupní parametry - vstupní byte, poradí bitu, hodnota změněného bitu (0 nebo 1) --> vrací změněný byte

//*****************************************

BYTE _stdcall setbit(BYTE val, BYTE bitno, BYTE bitval)

{

      BYTE Maska[] = {1,2,4,8,16,32,64,128};

      if(bitval)

      {

            return val | Maska[bitno];

      }

      return val & ~Maska[bitno];

}

********************************************************************************

Prosím poraďte někdo kód do Delph. Děkuji moc

Nahlásit jako SPAM
IP: 88.101.224.–
Reklama
Reklama
JoDiK
~ Anonymní uživatel
981 příspěvků
10. 12. 2013   #2
-
0
-

#1 Zeel
Přepis toho co máš do Pascalu/Delphi:

function setbit(val:byte; bitno: byte; bitval: byte):byte;
const maska : array[1..8] of byte = (1,2,4,8,16,32,64,128);
begin
  if bitval=1
    then val:=val or maska[bitno]
    else val:=val and not maska[bitno];
  setbit:=val;
end;
Nahlásit jako SPAM
IP: 88.103.236.–
hlucheucho+10
Posthunter
10. 12. 2013   #3
-
+1
-
Zajímavé

#2 JoDiK
U tak jednoduché knihovny je přepis snadný, ale představ si něco rozsáhlejšího. Možná o to jde, nepřepisovat dll, ale nějakým způsobem ji připojit, protože je objemná. Tazatel píše, že předložená dll je cvičná.

Z Delphi do C++ to jde, C++ Builder to používá, VCL je celá Delphi. Naopak to asi půjde taky  http://stackoverflow.com/questions/13558530/how-do-i-export-function-from-c-dll-and-use-in-delphi

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zeel
~ Anonymní uživatel
18 příspěvků
10. 12. 2013   #4
-
0
-

Díky moc za rady, myslím právě připojení a ne přepis, protože u větších knihoven je to zbytečná práce (celé je přepisovat). 

Nahlásit jako SPAM
IP: 88.101.224.–
hlucheucho+10
Posthunter
10. 12. 2013   #5
-
0
-

nejen zbytečná, ale i s rizikem značného počtu chyb

hu

Nahlásit jako SPAM
IP: 188.95.60.–
KIIV+42
God of flame
10. 12. 2013   #6
-
0
-

#5 hlucheucho
ale kdyby se to firma rozhodla outsourcovat do Indie, tak by to bylo bez tohodle rizika... (tam by to byla naprosta jistota ze to zmrsi :))

Nahlásit jako SPAM
IP: 94.113.92.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hlucheucho+10
Posthunter
10. 12. 2013   #7
-
0
-

#6 KIIV
  

Nahlásit jako SPAM
IP: 188.95.60.–
JoDiK
~ Anonymní uživatel
981 příspěvků
10. 12. 2013   #8
-
0
-

#4 Zeel
Aha, tak jsem to špatně pochopil...

Nahlásit jako SPAM
IP: 88.103.233.–
Zeel+1
Newbie
10. 12. 2013   #9
-
0
-

Tak nakonec jsem to napsal takhle, vůbec nevím, jestli je to správně. Program funguje a vypisuje to celkem věrohodný výsledek, ale tak ještě to sem hodil, kdyby si někdo všiml nějaké blbosti.  

function setbit(val:byte; bitno:byte; bitval:byte):byte; stdcall; external 'func.dll';


procedure TForm1.Button1Click(Sender: TObject);
var ByteVar:Byte;
begin
MessageBox(0,'DLL Loaded',0,0);
ByteVar:=setbit(2,1,1);        //Zadavatelné hodnoty
MessageBox(0,'Process End',0,0);
Label1.Caption:=IntToStr(ByteVar);
end;
Nahlásit jako SPAM
IP: 88.101.224.–
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, 12 hostů

Podobná vlákna

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

Dll — založil Tomass

Dll — založil paking

C# a dll — založil Grungy

 

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