någon som kan omvandla koden nedan till en class i c# ?? Det absolut lättaste sättet du kan översätta på är att peta in det där i VB.NET Börja med att skriva om det till vb.net, gå sen till http://labs.developerfusion.co.uk/convert/vb-to-csharp.aspx och klistra in koden, då får du ut den i c#. Det är <b>Johan Djupmark</b> som skrivit den Vb6-klassen Men Sven, när ska du lära dej mitt namn...? :) Har tyvärr inte tid att kolla på detta nu. <b>han är en örn</b> får ursäkta ett glömt "er" <b>Djupmarker ;-)</b> Sven du har inte lust att lägga upp den dll:en här på pellesoft så jag kan ladda ner den. Jag vore grymt tacksam i så fall.vb6 till c# kod
Jag har flrsökt men var förlängesedan jag håll på med vb6
<code>
Private Declare Function DlPortReadPortUchar Lib "dlportio.dll" (ByVal Port As Long) As Byte
Private Declare Sub DlPortWritePortUchar Lib "dlportio.dll" (ByVal Port As Long, ByVal Value As Byte)
Public Enum enumPort
LPT1 = &H378
LPT2 = &H278
LPT3 = &H3BC
End Enum
Public Enum enumPin
Pin2
Pin3
Pin4
Pin5
Pin6
Pin7
Pin8
Pin9
Pin10
Pin11
Pin12
Pin13
Pin15
End Enum
Public Function GetTemp(ByVal Port As enumPort, ByVal Pin As enumPin, Optional ByVal SampTime As Double = 0.5) As Double
Dim lngNumOfHigh As Long
Dim NumOfSamp As Long
Dim StartTime As Double
Dim bteSamp As Byte
Dim bteMask As Byte
Dim lngActSamp As Long
Dim lngPortAdr As Long
lngPortAdr = Port
Select Case Pin
Case Pin2
bteMask = 1
Case Pin3
bteMask = 2
Case Pin4
bteMask = 4
Case Pin5
bteMask = 8
Case Pin6
bteMask = 16
Case Pin7
bteMask = 32
Case Pin8
bteMask = 64
Case Pin9
bteMask = 128
Case Pin10
bteMask = 64
Case Pin11
bteMask = 128
Case Pin12
bteMask = 32
Case Pin13
bteMask = 16
Case Pin15
bteMask = 8
End Select
If Pin >= Pin10 Then
lngPortAdr = lngPortAdr + 1
Else
DlPortWritePortUchar Port + 2, DlPortReadPortUchar(Port + 2) Or 32
End If
StartTime = Timer
Do Until Timer - StartTime > SampTime
If Timer < StartTime Then StartTime = 0
bteSamp = DlPortReadPortUchar(lngPortAdr)
NumOfSamp = NumOfSamp + 1
If bteSamp And bteMask Then lngNumOfHigh = lngNumOfHigh + 1
Loop
If Pin = Pin11 Then lngNumOfHigh = NumOfSamp - lngNumOfHigh
GetTemp = (lngNumOfHigh / NumOfSamp - 0.32) / 0.0047
End Function
</code>Sv: vb6 till c# kod
och kompilera koden
och sedan kör du .NET reflector på den kompilerade koden och väljer att dekompilera till C#Sv:vb6 till c# kod
Sv: vb6 till c# kod
till mitt gamla projekt SMT160-30 tempgivare.
Kontakta honom,han är en örn som säkert kan skriva om den.
Du kan få min Delphi DLL kompilerad som också duger.
Själv kör jag med en Delphi DLL som är en exakt kopia.
<code>
// Delphi DLL kod
library SMT160;
uses
SysUtils,
Classes,
Celcius in 'Celcius.pas';
Exports GetTemp ;
begin
end.
//*************************************************
unit Celcius;
interface
Uses
Windows ;
Function DlPortReadPortUchar(GetAddrVal:Integer) :
Byte;StdCall ;
//Parallellporten
Function GetTemp(AddrVal :Integer ; Pin :Integer) :
Single;StdCall ;
Implementation
Function DlPortReadPortUchar(GetAddrVal:Integer) :
Byte;StdCall ;
external 'DLPORTIO.dll' name 'DlPortReadPortUchar' ;
Const K1 = 0.32 ;
Const K2 = 0.0047 ;
//************************************************
Function GetTemp(AddrVal :Integer ; Pin :Integer) :
Single;StdCall ;
Var
cntHigh : Integer ;
totNumOfSamp : Integer ;
inSignal : Byte ;
smartSign : Byte ;
Mask : Byte ;
halfSek : Dword ;
Begin
Case Pin of
10: Mask := 64 ;
11: Mask := 128 ;
12: Mask := 32 ;
13: Mask := 16 ;
15: Mask := 8 ;
End ;
halfSek := GetTickCount + 500 ;
cntHigh := 0 ;
For totNumOfSamp := 1 TO 100000000 do begin
inSignal := DlPortReadPortUchar(AddrVal) ;
smartSign := inSignal And Mask ;
If smartSign = Mask Then inc(cntHigh) ;
If GetTickCount > halfSek Then Break ;
End ;
If Pin = 11 Then
cntHigh := totNumOfSamp - cntHigh ;
GetTemp := (cntHigh/totNumOfSamp - K1)/K2;
End;
</code>Sv:vb6 till c# kod
/JohanSv: vb6 till c# kod
Du får stava mitt namn fel en gång , så är Vi kvittSv:vb6 till c# kod
Tack på förhand