Nespravne orezanie stringu   otázka

VB.NET

V module mam naimportovanu fnc a k nej structuru

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Module Module1
    <DllImport("winmm.dll", entrypoint:="waveOutGetDevCapsW")> Public Function waveOutGetDevCaps(ByVal uDeviceID As Integer, ByRef pwoc As WAVEOUTCAPS, ByVal cbwoc As Integer) As Integer
    End Function
 
    <StructLayout(LayoutKind.Sequential, Pack:=1, CharSet:=CharSet.Unicode)> Public Structure WAVEOUTCAPS
        Public wMid As Short
        Public wPid As Short
        Public vDriverVersion As Integer
        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=128)> Public szPname As String
        Public dwFormats As Integer
        Public wChannels As Short
        Public wReserved1 As Short
        Public dwSupport As Integer
    End Structure
End Module

a potom to volam z tlacidla

1
2
3
4
5
6
7
8
9
10
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim ee As WAVEOUTCAPS
    Dim i As Integer
 
    i = waveOutGetDevCaps(TextBox2.Text, ee, Marshal.SizeOf(ee))
    If i = 0 Then Me.Text = "OK " Else Me.Text = "ERROR" : Exit Sub
 
    Debug.Print(ee.szPname.Length)
    TextBox1.Text = ee.szPname.ToString
End Sub

Problem je v tom, ze aj ked mam szPname definovane ako fix s velkostou 128, aj tak mi to stale orezava na 32 znakov (posledny je null char).

Neviete ako to napravit a dost cely string, ktory tam mam definovany?

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

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