Hej, jag försökte göra en dll-fil häromdan men det lyckas ej, fick felet "Can´t find entrypoint "test" in blabla.dll" En enkel dll. >Dim mittdllobjekt = mindll.minklass Hej Jag gnäller när jag inte fått något att äta. KAn det vara så att du glömt mata din dll? Sorry! Hej, nu får jag inte felmeddelande iaf. <code>Public Function testfunktion(sträng as string) As String 'funktionen ska returnera en sträng och kräver en sträng som inparameter Nej...detta går fan inte in...ledsen men det går bara inte... Om du vil retunera flera värden i ett svet. KAn du retunera dem som egenskaper: Hej, hur orkar du va vaken kl 03?:-)en enkel DLL? (Fattar nu)
hur gör jag en dll?
jag ska ha den som lagring av värden mellan två vb-applikationer.
/Benny-som är på betydligt bättre humör nu:-)Sv: en enkel DLL?
Skapa ett nytt projekt ActiveX.dll
Döp projektet och klassen till vad du vill.
I klassen skriver du en funktion tex.
Public Function mintestfunktion() as string
mintestfunktion = "Nu har jag hämtat värde i dllen"
End Function
Kompilera och registrera den med regsvr32
Sedan i ditt VB program där du vill anropa dll'en så skapar du en referens till den
och där skriver du
Dim mittdllobjekt as mindll.minklass
dim strtest as string
strtest = mittdllobject.mintestfunktion
edit: råkade visst skriva = istället för as...Sv: en enkel DLL?
>dim strtest as string
>strtest = mittdllobject.mintestfunktion
Jag får fel på första = -tecknet.
jag skapade en dll som du sa, reggade den.
den heter "test.dll" och ligger på "c:\"
skapade en referens men då gnäller den...Sv: en enkel DLL?
Dll : er(Dynamic Link Library) gör man för att få ett snabbt enkelt bibliotek (StandAlone)
Att göra Dll :er i Vb är bland det "knäppaste" man kan ta sig till.
Lär Er Delphi eller C den enklaste vägen till att göra effektiva Dll :er (StandAlone)
/SvenSv: en enkel DLL?
Eller om du bifogar felmeddelandet du får när du försöker lägga till en referens till din dll kanske kan var till hjälp. ;o)
ÄR det du som skapat dll'n i VB? Eller är det en befintlig dll?Sv: en enkel DLL?
Jag råkade var för snabb.
Det ska vara...
Dim mittdllobjekt as mindll.minklass
as istället för =
sorry!Sv: en enkel DLL?
Så här ser min DLL ut:
Den e inte snygg men så ser det ut.
<code>
Private sträng As String
Public Function testfunktion(sträng) As String
sträng = "Nu har jag hämtat värde i dllen"
End Function
</code>
Så här ser det ut när jag hämtar från dll:en:
<code>
Private Declare Function testfunktion Lib "testdll.dll" ()
Private Sub Command1_Click()
Dim strtest As String
Set mittdllobjekt = CreateObject("testdll.testclass")
strtest = mittdllobjekt.testfunktion(sträng)
MsgBox sträng
End Sub
</code>
Detta fungerar men gör jag rätt?
OM jag gör det så undrar jag nu hur jag GER Dll:en värden.
Sena hälsn BennySv: en enkel DLL?
'testfunktion = "Nu har jag hämtat värde i dllen" 'returnerar "Nu har jag hämtat värde i dllen"
'eller om du ska använda inparametern
testfunktion = sträng 'returnerar strängen du skickat in
End Function
Dim strtest As String
Set mittdllobjekt = CreateObject("testdll.testclass")
strtest = mittdllobjekt.testfunktion("blablabla")
MsgBox strtest 'strtest innehåller det funktionen i komponenten returnerar i detta fallet "blablabla"
End Sub </code>
Sv: en enkel DLL?
om jag skriver så här då:
Jag har en dll, den dll:en skall FÅ värden från program 1.
program 2 skall HÄMTA dessa värden i dll:en.
Hur gör jag?Sv: en enkel DLL?
<code>
'Class: clsCustomer
Private m_Id As Long
Private m_Name As String
Private m_Address As String
Private m_PostalCode As Long
Private m_City As String
Property Get Id() As Long
Id = m_Id
End Property
Property Get Name() As String
Name = m_Name
End Property
Property Get Address() As String
Address = m_Address
End Property
Property Get PostalCode() As Long
PostalCode = m_PostalCode
End Property
Property Get City() As String
City = m_City
End Property
Private Function LoadCustomer(Connection as ADODB.Connection, CustomerId AS long) As Boolean
Dim rs As ADODB.Recordset
Set rs = Connection.Execute("SELECT * FROM Customer WHERE CustomerId = " & CustomerId)
If Not rs.EOF Then
m_Id = rs("Id")
m_Name = rs("Name")
m_Address = rs("Address")
m_PostalCode = rs("PostalCode")
m_City = rs("City")
LoadCustomer = True
End If
rs.Close
End Sub
</code>
Lägg till en referens till projektet under menyn Project/References...
Du kan sedan använda klassen för att hämta uppgifter, i detta fallet en kund:
<code>
Private Sub Command1_Click()
Dim Customer As clsCustomer
Set Customer =New clsCustomer
If Customer.LoadCustomer(Conn, 12) Then
Text1.Text = Customer.Name
Text2.Text = Customer.Address
Text3.Text = Customer.PostalCode
Text4.Text = Customer.City
Else
Msgbox "Customer not found!"
End If
End Sub
</code>Sv: en enkel DLL?
Jag är inte säker på att det blir som jag vill ha det med din kod andreas.
känner mig bara puckad så jag skiter i dll:er:-) mitt nuvarande sätt att skriva o läsa till registret får duga.
Tack för erat engagemang
/Benny-missnöjd med sig själv....