Hei,
Kun siirrän VB2008 sovelluksen Win10:een (64bit) ja käynnistän resurssienhallinnasta, niin jäätyy koko resurssienhallinta eikä ohjelma käynnisty. Pakko buutata koko mylly. Ohjelma kehitetty Win10:ssä (32bit) ja toimii ok. Mikähän mättää?
Kun ottaa virustarkistuksen pois päältä, ei resurssien hallinta "jäädy", mutta ohjelma ei käynnisty. Käynnistyksessä joku lippu vain vilahtaa, mutta ei ehdi nähdä. Ilmeisesti siinä lukee jotakin "Ohjelma keskeytyi..."
Todella äärimmäisen vaikea lähteä arvailemaan, kun et kerro oikeastaan mitään hyödyllistä tietoa ongelman ratkaisemiseksi.
Jos et halua kertoa mitä ohjelma tekee, niin ehdotan että lähdet eliminoimaan. Eli tee ensin ohjelma jossa on vain yksi ikkuna, käännä se VB2008:lla 32-bittisessä Windowsissa ja kokeile jumittaako se 64-bittisessä.
Jos se toimii (kuten on oletettavaa) niin lisäile puolet ominaisuuksista ja testaa uudestaan. Jos se toimii, niin laita toinen puolikas (jolloin sen pitäisi jumiutua). Näin löydät pikkuhiljaa sen kohdan joka jumittaa koneen.
Helpompi tapa debugata voisi olla asentaa VB2008 sille 64-bittiselle koneelle ja kokeilla debug-tilassa edetä ja katsoa missä kaatuu. Tai laita ohjelmaan kunnon virheenkäsittely ja/tai lokita missä kohdassa se kaatuu.
Ohjelma on melko simppeli kortisto-ohjelma josta tulostan muutaman raportin Crytallilla. Yritinkin jo aiemmin asentaa vb:n tuolle 64-bittiselle voidakseni debukata sitä, mutta tuo Crystallin (versio 7) ei suostu asentumaan, joten homma ei onnistu. Kiinnostavaa on, että sama ohjelma toimii toisella 64-bittisellä johon se asennettiin win7:n aikana ja myöhemmin sitten päivitettiin win10:een. Eikä siis mitään ongelmia ilmennyt.
Kokeilen tuota ehdottamaasi tapaa tehdä vain yhden lomakkeen hommeli ja testata sillä. Muuten ohjelmassa on normaalit virherutiinit, mutta ei koskaan mene niihin, vain tuo lippu vilahtaa heti käynnistyksessä.
Veikkaan että se crystal on 32-bittinen kirjasto, ja ajat sitä VB-softaa 64-bittisenä (eli olet kääntänyt Any Cpu asetuksella)
Kokeile kääntää se 32-bit koodiksi. Eli sieltä yläpalkista tai kääntöasetuksista vaihdat AnyCPU tilalle x86.
Ei tuollaista (AnyCPU/x86) asetusta löydy. Minulla on Visual Basic 2008 express Edition. Ja kuten sanottu, sama koodi toimii toisessa koneessa johon se asennettiin Win7:n aikana.
Tosiaan, jos se on aiemmin toiminut 64-bittisellä käyttiksellä niin eipä se kai sitten siitä ole kiinni. Kuitenkin yleisesti se on helppo tapa kaataa sovellus että käyttää vääränbittistä kirjastoa. (Ongelmaahan ei ole jos kirjastotkin on "AnyCPU" käännettyjä.)
Tein testiohjelman jossa on yksi lomake ja siinä yksi button, mutta ei käynnisty sekään 64-bittisessä.
Tuo aiempi ohjelma näkyy tehtävien hallinnan Lisätiedot-kansiossa monta kertaa, eikä niitä pysty poistamaan. Ei vaikka sammuttaa myllyn välillä, siellä ne vain killuu, ei kuitenkaan prosessit-kansiossa. Ei ymmärrä.
Pieni korjaus edelliseen: Tuo testiohjelma toimii kun kopioin sen kovalevylle. Testasin sitä ensin suoraan tikulta, josta se ei lähtenyt skulaamaan.
Täytyy nyt vähitellen lisätä toimintoja tuohon testiin.
Kokeilu kannatti, kiitos ehdotuksesta. Elikkä kun ottaa pois Crystallin kontrollin, niin kaikki skulaa. Varmaankin pitäisi saada uudempi 64-bittiseen sopiva kontrolli, mutta tuskin tuohon versioon 7 mitään saa.
Outo ilmiö tuo, että kun asentaa ohjelman ensin win 7:aan 64-bit ja sitten päivittää win10:een niin crystal skulaa, kuten tuossa edellä kerroin toisesta vastaavasta myllystä.
Huomasin tuossa "Timotaikurin" aiemmin pähkäilleen myös Crystallin kanssa joka kaatoi ohjelman. Ainakin versiossa 7 annettiin aina ennen tulostusta Crystal Controllille "Reset"- komento joka pelasti monelta ongelmalta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.