Jag har ett litet problem med att få min DLL att fungera i VB6. DLL filen är skriven i MSVC6 och fungerar utmärkt att använda i andra C++ program. Den använder sig av __declspec(dllexport) för att exportera funktioner. När jag skriver: Hej Jag ska absolut inte skicka Long, eftersom att både Integer och short är 2 byte stora, och jag använder short i DLL:en. Jag lyckades inte heller importera funktioner från en DLL som jag gjorde i VB... HejHur ska jag anropa min DLL?
<code>Public Declare Function gltSetMode Lib "glTiles" (hWnd as Long, width as Integer, height as Integer, bpp as Byte, full as Boolean) as Long</code>
Och försöker anropa den från min kod får jag veta att den inte kunde hitta den entry-pointen. Argumenten stämmer också (4 + 2 + 2 + 1 + 1 bytes), hur ska jag få detta att fungera?Sv: Hur ska jag anropa min DLL?
Testa att ändra alla Integer till Long
Det finns två sätt du kan testa
Public Declare Function gltSetMode Lib "glTiles" (ByVal hWnd As Long,ByVal width As Integer, ByVal height As Integer,ByVal bpp As Byte, full As Boolean) As Long
Public Declare Function gltSetMode Lib "glTiles" (ByVal hWnd As Long,ByVal width As Long, ByVal height As Long,ByVal bpp As Byte,ByVal full As Boolean) As Long
Sen är jag lite osäker på Boolean ,tror du skall skicka -1 för True och 0 för False
Testing Testing , en sak är säker du skall skicka ByVal
/SvenSv: Hur ska jag anropa min DLL?
Sv: Hur ska jag anropa min DLL?
>Jag ska absolut inte skicka Long, eftersom att både Integer och short är 2 byte stora,
Hur skall Vi kunna veta detta , eftersom du inte skriver det i din fråga. ????
Men !#%6## ! gör hur fa... du vill då, ByVal gäller ;-(
DS