Předělání pář řádků z Delphi do C# (MS Visual Studio 2010) – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Předělání pář řádků z Delphi do C# (MS Visual Studio 2010) – Delphi – Fórum – Programujte.comPředělání pář řádků z Delphi do C# (MS Visual Studio 2010) – Delphi – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
PedroKV0
Duch
3. 1. 2012   #1
-
0
-

Ahoj, jsem tu poprvé, hledám tu dobrou duši, která by mi pomohla s následujícím problémem. Mám USB HID teploměr s vlhkoměrem (HID TemperHUM z dealextreme.com).

Mám program, včetně zdrojáku ve Visual Studio C#, který funguje s předcházejícím USB jen teploměrem, už ale neběhá s HID temperhumem. Rok jsem se snažil něco s tím provést, ale nedařilo se. Teď se mi ozval Holanďan, programátor v Delphi a napsal zkusmo pár řádek v Delphi a načetl hodnoty z temperhumu. Já bych tyhle řádky potřeboval přeportovat z Delphi do C#. Jedná se o proceduru importovanou z DLL k tomu USB TemperHUMu.

Já to prostě neumím. Kdysi jsem si napsal pár programů v Borland Pascalu, tehdy ještě v éře DOSu a W3.11. Loni jsem byl schopen maličko upravit ten program na teploměr v tom c#, ale to bylo pár triviálních věcí.

Kus Delphi kódu je zde:

procedure TForm1.Button2Click(Sender: TObject);
var H : THandle;
    nr : longint;
    bl : boolean;
    res:  double;
    temp, hum : double;
begin
  Memo1.Clear;
  H := LoadLibrary('HidFTDll.dll'); // Try to load the DLL
  if h =0 then Exit;                // Handle is zero, could not load DLL
  Memo1.Lines.Add('HidFTDll.dll loaded...');
  nr:= EMyDetectDevice(0);          // Get the number of devices
  if nr=0 then
  begin
    FreeLibrary(h);
    Application.Terminate;          // No device found, exit
  end;
  Memo1.Lines.Add(IntToStr(nr) + ' Device(s) detected...');
  EMySetCurrentDev(0);              // Set first device active
  bl:=EMyInitConfig(true);          // Initialize
  Memo1.Lines.Add('Device initialized...');
  EMyReadHUM(temp, hum);
  Memo1.Lines.Add('Temperature returned the value: '+Floattostr(temp));
  Memo1.Lines.Add('Humidity returned the value: '+ floattostr(hum));
  FreeLibrary(H);                   // Free memory (Unload DLL)
  Memo1.Lines.Add('DLL unloaded, memory freed');
end;

Já nevím, jaký má být zápis pro dllimport knihovny HIDFTDLL.DLL a jak potom použít proceduru EMyReadHUM a do proměnných (temp, hum) načíst hodnoty.

Snad se najde dobrá duše, která pomůže, předem díky.

Pedro

Nahlásit jako SPAM
IP: 90.178.184.–
Řešení
PedroKV0
Duch
3. 1. 2012   #2
-
0
-
Vyřešeno Nejlepší odpověď

Vyřešeno:

import dll:

[DllImport("HidFTDll.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
        public static extern void EMyReadHUM(ref double Temp, ref double Hum);

čtení sensoru:

private double[] ReadTEMPerHum(){
            log("cteni temperhum");
            double temp=new double();
            double hum=new double();
            double[] myReturn = {-100, 100};
            myReturn[0] = 1;
            myReturn[1] = 2;
            log("nula: "+myReturn[0].ToString());
   EMyReadHUM(ref temp, ref hum);
            log("ptemp: " + temp.ToString());
            myReturn[0] = temp;
   myReturn[1] = hum;
   log("TEMP: "+myReturn[0].ToString()+", HUM: "+myReturn[1].ToString());
   return myReturn;

Nahlásit jako SPAM
IP: 90.178.184.–
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, 14 hostů

Podobná vlákna

Visual Studio 2010 velikost — založil Doomista

Microsoft Visual Studio 2010 — založil lukas011

 

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