Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: vastine ByVal:lle

Sivun loppuun

Gaxx [27.05.2004 19:39:43]

#

Ongelma on sellainen, että ohjelma valittaa ByVal 0 parametrista:

Sub LataaTekstuurit()
    Set Tekstuuri = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & _
    "\tutorial.bmp", D3DX_DEFAULT, D3DX_DEFAULT, 1, 0, D3DFMT_UNKNOWN, _
    D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, 0, ByVal 0, _
    ByVal 0)
End Sub

Subi siis sijaitsee moduulissa. Milläs tuon nyt korjaat/korvaat?

hunajavohveli [27.05.2004 19:51:37]

#

En tiedä puhunko nyt ihan täyttä soopaa, mutta eikös ByVal voi olla vain aliohjelman määrittelyssä, ei kutsussa?
Edit: ByVal tulisi siis tuon D3DX.CreateTextureFromFileEx-aliohjelman parametrimäärittelyihin.

Gaxx [27.05.2004 19:53:04]

#

Kyllä tuo minulla ainakin toimii kun se on formissa. Ongelma syntyy kun laitan sen moduuliin.

hunajavohveli [27.05.2004 19:56:19]

#

Miksi ByVal pitäisi olla kutsussa?

Blaze [27.05.2004 20:07:56]

#

hunajavohveli kirjoitti:

Miksi ByVal pitäisi olla kutsussa?

Täytyypä myöntää, että en tiedä, miksi, mutta SDK sanoo näin, ja minä uskon sitä.

DirectX SDK kirjoitti:

SrcInfo
A D3DXIMAGE_INFO structure to be filled with a description of the data in the source image file, or ByVal 0.

Palette
The first element of an array of 256 PALETTEENTRY types to fill in, or ByVal 0. See Remarks.

Itselläni noita kutsuja on iso kasa Class Modulessa ("Luokkamoduuli"?), ja hyvin toimivat.

Gaxx [27.05.2004 20:10:09]

#

hunajavohveli kirjoitti:

Miksi ByVal pitäisi olla kutsussa?

Ööö... toi on DX:ää putkan oppaasta. En ole pahemmin perehtynyt tuon homman suhteen kun ei toi vb meinaa näyttää niitä funktion parametreja tossa ku kirjottaa tota.
Ei niitä parametripaikkoja voi tyhjäksää jättää ni ajattelin kysyä täältä kun ei mikään meinaa auttaa.

Edit: Kappas Blaze ehtikin jo...
Mutta kuinkas niitä luokkamoduulissa olevia subeja/funktioita sitten oikein kutsutaan formissa kun rupes valittaan nyt sitten ettei funktiota ole määritelty?

Blaze [27.05.2004 21:24:22]

#

Gaxx kirjoitti:

Mutta kuinkas niitä luokkamoduulissa olevia subeja/funktioita sitten oikein kutsutaan formissa kun rupes valittaan nyt sitten ettei funktiota ole määritelty?

Dim jee As New munluokka
...
jee.munfunkkari

Antti Laaksonen [27.05.2004 21:24:37]

#

ByVal tarkoittaa, että parametrin arvo välittyy suoraan aliohjelmalle. ByRef taas tarkoittaa, että aliohjelma saa pelkän viittauksen muuttujaan, jolloin se pystyy myös muuttamaan sen arvoa. Jos muuta ei ole määritelty, niin parametrit välitetään viittauksina.

Ongelmaasi en valitettavasti kuitenkaan tiedä ratkaisua. Joka tapauksessa tuntuu vähän oudolta, että luku 0 täytyy nimenomaan välittää suorana arvona, sillä eihän se edes ole mikään muuttuja.

Gaxx [27.05.2004 21:57:32]

#

Okei, kiitoksia.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta