Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    errore di runtime13 con ms-comm

    Ciao sono Valerio

    ho bisogno di aiuto
    La situazione è questa :

    1)scrivo un sorgente con vb6,programma compilato con VB6,allego tutti i file .ocx richiesti.
    2)lo sposto in un altro PC,con windows xp professional service pack2,lo installo,cioè estraggo il .exe e i 2 file .ocx comdlg32.ocx,mscomm32.ocx,nella cartella di sistema
    3)si blocca quando chiamo l'oggetto mscomm e i metodi collegati,da error runtime 13,type mismatch

    4)ti do il codice completo



    'carica e visualizza la form di progressione del download

    '---------------------------------------------------------------------'carica le form
    '---------------------------------------------------------------------

    Load Form2




    Form2.Command1.Caption = Form2_Button_Cancel_Caption(Global_Set_Language)
    Form2.Caption = Form2_Caption_upload(Global_Set_Language)
    Form2.Frame1.Caption = Form2_Frame1_Caption_upload(Global_Set_Language)
    Form2.Label1.Caption = Form2_Label1_Caption_upload(Global_Set_Language)



    Form2.Show

    'response = MsgBox("OK fin qui1", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))



    '--------------------------------------------------------------------
    'apre la porta di comunicazione com1 di default
    '---------------------------------------------------------------------

    If Form1.MSComm1.PortOpen = False Then

    'response = MsgBox("OK fin qui2", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.MSComm1.CommPort = Global_COMM_PORT ' use commport1 di default


    'response = MsgBox("OK fin qui3", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.MSComm1.InputLen = 0 ' legge un byte alla volta

    'response = MsgBox("OK fin qui4", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    Form1.MSComm1.RThreshold = 1 ' voglio essere informato della ricezione di ogni singolo byte

    'response = MsgBox("OK fin qui5", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    Form1.MSComm1.Settings = "9600,n,8,1" ' 9600 baud 8 bit dati no parity 1 stop bit

    'response = MsgBox("OK fin qui6", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    Form1.MSComm1.DTREnable = False

    'response = MsgBox("OK fin qui7", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    Form1.MSComm1.RTSEnable = False


    'response = MsgBox("OK fin qui8", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    'Abilito l'intercettazione degli errori

    On Error GoTo ErrorCOMUpload

    'response = MsgBox("OK fin qui9", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.MSComm1.PortOpen = True ' Apriamo la porta.<---qui ho l'errore di type mismatch,aiutoooooo!!!!

    'response = MsgBox("OK fin qui10", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    GoTo OKOpenCOMUpload

    ErrorCOMUpload:

    response = MsgBox(ErrorOPENCOM(Global_Set_Language) + Form1.MSComm1.CommPort, vbOKOnly + vbCritical, DownloadMessageResult(Global_Set_Language))

    GlobalStatusComunication = StopComunicationKB1

    OKOpenCOMUpload:

    End If

    'response = MsgBox("OK fin qui11", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    index_bufferGlobal = BYTE_1_BUFFER

    'response = MsgBox("OK fin qui12", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    '---------------------------------------------------------------------
    'dimensione buffer di default
    '---------------------------------------------------------------------

    GlobalNumberPacketByte = 65000

    'response = MsgBox("OK fin qui13", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    '---------------------------------------------------------------------
    'variabile globale di accettazione pacchetto password
    '---------------------------------------------------------------------

    Global_Packet_Password = Start_Comunication_Password


    'response = MsgBox("OK fin qui14", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    '---------------------------------------------------------------------
    'variabile globale di start comunicazioni
    '---------------------------------------------------------------------

    Global_Status_download = Stop_download

    'response = MsgBox("OK fin qui15", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    Global_Status_upload = Start_upload

    'response = MsgBox("OK fin qui16", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    GlobalStatusComunication = UploadKB1

    'response = MsgBox("OK fin qui17", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    '---------------------------------------------------------------------
    'spedisce lo start message upload
    '---------------------------------------------------------------------

    If Not Transmitbyte(&HF1) Then

    'response = MsgBox("OK fin qui18", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    response = MsgBox(UploadResult_TX(Global_Set_Language), vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    'response = MsgBox("OK fin qui19", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.MSComm1.PortOpen = False ' chiudiamo la porta la porta.

    'response = MsgBox("OK fin qui20", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))


    GlobalStatusComunication = StopComunicationKB1

    'response = MsgBox("OK fin qui21", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Unload Form2

    'response = MsgBox("OK fin qui22", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Exit Sub

    End If

    '---------------------------------------------------------------------
    'attiva il timer di accensione comunicazioni
    '---------------------------------------------------------------------
    'response = MsgBox("OK fin qui23", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.Timer1.Interval = 5000

    'response = MsgBox("OK fin qui24", vbOKOnly + vbCritical, UploadMessageResult(Global_Set_Language))

    Form1.Timer1.Enabled = True

    Grazie in anticipo x l'aiuto

    ciao

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,325

    Moderazione

    Ciao e benvenuto nel forum di Programmazione.

    Ti segnalo da subito la lettura del nostro Regolamento che contiene tutte le norme da seguire per partecipare correttamente a quest'area del forum.

    In modo particolare, devi sempre indicare il linguaggio utilizzato nel titolo della discussione, indicando la versione nel caso in cui ne esistesse più di una, assieme ad una sintesi breve ma significativa ed esplicativa del problema.

    Il linguaggio Visual Basic viene affrontato nell'apposita area dedicata in cui ho spostato questa discussione, dopo aver opportunamente corretto il titolo...cerca di ricordare di farlo tu in futuro.

    Detto questo, ciao e...buon forum!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Ciao..prima di analizzare il codice riga per riga (perchè ora devo andare), hai provato a vedere se nel tuo pc funziona? Perchè dal tipo di errore sembrerebbe più che si trattasse di un errore del codice, legato alla dichiarazione di qualche funzione o al tipo di dati (tanto per fare un esempio, come scrivere Cos("ciao"), l'argomento deve essere numerico)..anzichè legato a qualche file mancante.
    Inoltre non è un errore nemmeno provocato dal diverso sistema operativo, altrimenti non restituerebbe questo tipo di errore.
    Il mio consiglio: prova a ricompilare il sorgente e guarda se dà errori; potrebbe però non dare errori e magari essere proprio lì il problema in quanto vengono ricavati dall'altro pc dati diversi dai tuoi che non corrispondono più al tipo di dati dichiarato (per esempio: dim x as Byte: nel tuo pc il valore di x è in un range di 0-255; nell'altro pc il valore di x ricavato supera 255 ----> errore di Type Mismatch....

    Cmq se domani non hai risolto guarderò il codice..

    ciao

  4. #4

    Ho provato di tutto,

    Ho provato di tutto,si incasina nella proprietà legata all'oggetto ms comm,

    Form1.MSComm1.PortOpen = True ' Apriamo la porta.<---qui ho l'errore di type mismatch,aiutoooooo!!!!

    il bello è ke su altri computer va,non va solo su un computer che ha windowsXP professional service pack2,x caso sai se l'oggetto ms comm abbia qualke particolarità?Assieme all'exe nell'installer copio anke i file .ocx collegati in questo caso mscomm32.ocx

    Grazie

    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Guarda questi esempi se ti possono essere d'aiuto:

    http://msdn.microsoft.com/library/de...vbobjcommx.asp

    http://msdn.microsoft.com/library/de...topencommx.asp


    Io ho windows XP professional con installato visual basic 6 sp6 e la versione di MSCOMM32.OCX è la seguente:6.0.81.69 , se ti può essere di aiuto per controllare.

    Ciao

  6. #6

    ho la versione corretta xò.......

    Ciao
    del file mscomm32.ocx ho la versione 6.0.81.69 corretta per visualbasic6 con service pack6.
    Cè xò un'altra cosa interessante,
    ho portato i sorgenti in un computer con windows2000professional dove c'è visual basic .net2005 e ho lanciato l'upgrade dei sorgenti a visual basic .net da visual basic 6,
    l'upgrade richiede i seguenti file .ocx :

    comct232.ocx,
    mscomctl.ocx,
    comct332.ocx.

    Nel mio caso una volta ottenuto il file .exe da visualbasic6 x far funzionare il file .exe con l'oggetto ms comm,in un pc senza visualstudio,devo allegare anke i 3 file .ocx soprastanti?Domani proverò questa soluzione.Teniamo conto ke allegando solo il file mscomm32.ocx va ok dappertutto tranne ke in un computer con windows XP professional service pack2.Nn so dove andare a parare perkè il file .exe si blocca esattamente quando rikiamo l'oggetto ms_comm x gestire la seriale,ma nn vedo errori nel codice.

    Ciao

  7. #7

    niente non ne vuole sapere..........



    Ho allegato i file ocx sopracitati ma niente,si incasina ancora quando richiamo l'oggetto ms-comm

    in sostanza quando richiamo

    form1.mscomm1.portopen = true <- qui si incasina...

    oppure in

    form1.mscomm1.output(... <- qui si incasina.

    non so dove andare a parare.

    Ricapitolando

    1)Creo un .exe con VB6

    2)non da errori,uso option explicit,le variabili sono tutte dikiarate correttamente

    3)i file .ocx sono aggiornati all'ultima versione x VB6 ho service pack 6

    4)allego i file .ocx,mscomm32.ocx e commdlg32.ocx

    5)va dappertutto tranne in un computer con windows xp prof,service pack2

    Aiutooo

    Ciao

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Per esperienza e per come hai raccontato il problema, potrebbe trattarsi di qualcosa legato alle impostazioni internazionali del PC "incriminato".

    Per questo PC, imposta il linugaggio, il formato della data e della valuta eguali a quelli impostati sui PC in cui il programma funziona.

  9. #9

    domani provo xò.....

    Domattina posso provare xkè x ora il pc incriminato è utilizzato da un collega,ma ripensandoci su,

    possono influire queste modalità lingua,valuta,etc sugli oggetti ocx?

    Si incasina,quando richiamo il metodo form1.mscomm1.portopen = true.

    Oggi è accaduta una cosa strana :

    ho installato un .exe da visualc++ 6.0 il quale lavorava sulla stessa porta COM.

    L'exe in c++ non ha bisogno dei file .ocx e andava alla grande.

    Quando ho riavviato il file .exe in visualbasic incriminato,il file .exe VB6 funzionava ok,



    non lo so spiegare.

    Grazie a tutti di nuovo

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.