25. maj 2005 - 13:17Der er
7 kommentarer og 1 løsning
Er der nogen der kender til Fortran - type conversion
Måske et mærkeligt spørgsmål lige her, men...
Jeg har fået en DLL af en leverandør, og den har jeg testet i VB og den virker fint. En af funktionerne returnerer en bruger defineret struktur :
Type select number As Long capacity As Single deviation As Single model As String * 8 modelType As String * 8 End Type
Jeg har i Fortran linket op til andre funktioner der returnerer en simpel integer og det går fint, men denne her giver mig problemer. Jeg har på fornemmelsen at det har noget at gøre med struktur definitionen i Fortran
type select sequence integer*4 :: number real :: capacity real :: deviation character(kind=1,len=8) :: model character(kind=1,len=8) :: modeltyp end type selectie
men jeg kan ikke rigtig få det til at fungere.
Håber at der er nogen der har arbejdet med Fortran derude...
en string i VB6 og VBA er så vidt jeg ved en hvad man i C kalder en BSTR og kan sikkert ikke mappes direkte til en FORTRAN CHARACTER
mit umiddelbare gæt er at: - du erklærer de sidste 2 argumenter som integer*4 - så virker det med første 3 argumenter - for at få de strenge ud skal vi kalde et eller andet for at hente fra den pointer vi har fusket med en integer*4 over i en character
Med hensyn til det sidste skal jeg nok lige have fat i min COM bog inden jeg tør komme med et bud.
Jeg har læst lidt. Du burde få en 4 byte pointer til et array af unicode characters.
Nu kan jeg se at du bruger fortran 90/95 så måske kan du bare erklære den til at være en pointer.
Ellers er der jo den gode gamle måde som vi har brugt i mange år i fortran 77 med et array med 1 element og lidt snedig udregning af index via loc funktion.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.