API funguje v Windows Application, ale nie v Console Application   zodpovězená otázka

VB.NET, WinAPI

Mam naimportovanu fnc:

<DllImport("kernel32.dll", CharSet:=CharSet.Auto)> Public Function QueryDosDevice(ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Integer) As Integer
End Function

A potom to volam

Sub Main()
    Dim devstr As String = String.Empty

    QueryDosDevice("A:", devstr, 1024)
    Debug.Print(devstr)
End Sub

Problem je v tom, ze takto to funguje iba v Windows Application, ale nie Console Application.

Neviete mi povedat kde robim chybu?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Funguje bez problémů i v konzolové aplikaci, problém bude někde jinde. Jakou návratovou hodnotu vám vrací funkce QueryDosDevice?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

navratova hodnota je OK, vrati velkost naplneneho buffera s NULL char nakonci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V čem je tedy problém? API funkce funguje tak jak má, ve Windows Forms i konzolové aplikaci.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ze v tom buffery nemam nic az na jednu lomku. Ma tam by device dos name. Teraz som to skusal a uz vracia nulu, cize chyba...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback