Vă mulțumim pentru susținere

Descărcați un control COM atunci când lucrați în IDE VB6

O parte din munca mea de zi cu zi este menținerea și extinderea aplicațiilor VB6 vechi. Un motor comun este scris în C / C ++ și VB6 utilizează aceste funcții pentru a îmbunătăți performanța.

Când vine vorba de programarea asincronă, o interfață C nu este suficientă și ne bazăm pe comenzile COM pentru a trage evenimente la VB6.

Problema mea este că atunci când înregistrez controlul în VB6, VB încarcă acest control în memorie și nu îl descărcă până când nu mai am IDE VB6. Deoarece controlul este încărcat tot timpul, nu reușesc să îl recompilau în VC6, deoarece fișierul DLL este blocat.

O soluție găsită nu este de a activa controlul în VB, dar folosiți CreateObject () cu numele complet al controlului meu. Problema este că trebuie să-mi declare controlul ca Obiect, deoarece VB6 nu știe nimic despre interfața pe care o folosesc și nu am acces la IntelliSense, ceea ce este o durere.

Ai idee cum pot spune VB6 să descarce controalele după ce a renunțat la aplicație sau direct în IDE?

0
adăugat editat

3 răspunsuri

În cea mai mare parte este același joc cu grafică actualizată, cum ar spune celălalt răspuns, dar există, de fapt, unele diferențe distincte.

Jocul original a avut unele efecte anti-gravitație pe câteva locuri în nivelele care nu erau în versiunea HD.


Există, de asemenea, diferențe secrete minore între cele două jocuri. Am scris o întrebare secretă despre Serious Sam când a ieșit inițial, iar când l-am actualizat pentru Serious Sam HD am observat câteva modificări pe care le voi lista mai jos:

  • La nivel de nisip Canyon, modificările motorului de joc au făcut-o foarte mult mai ușor pentru a rula până la două dintre secretele care obișnuiau să necesite unele sărituri dificile. Atât de mult încât, dacă nu știai istoria jocului, probabil că vă întrebați de ce au considerat ca fiind "secreți" de când au intrat vedere simplă.

  • Există un secret suplimentar la nivel Dunes.

  • La ultimul nivel, Marea Piramida, jocul original nu a avut niciunul secrete. Versiunea HD are 3 secrete la acest nivel.

3
adăugat

From http://en.wikipedia.org/wiki/Serious_Sam#Serious_Sam_HD:_The_First_Encounter

Jocul este un remake al lui Serious Sam:   Prima întâlnire cu îmbunătățit   texturi și modele de caractere. Aceasta   retaileri pentru 1200 de puncte Microsoft sau   US $ 15 (de asemenea, 15 $ pentru versiunea PC)   și suportă cooperativul online de 16 jucători   (4 jucători în versiunea XBLA). Acest   remake features Realizări. [5] [6]   Deathmatch și server dedicat   au fost adăugate recent asistență.

Am cumpărat de fapt ambele versiuni HD, deoarece nu aveam cele precedente, dar le-am jucat la prieteni.

kr,

2
adăugat
@Syne Există, de asemenea, pe bază de abur (= îmbunătățit) matchmaking.
adăugat autor Jax
Deci este într-adevăr texturi mai bune, altfel jocul și nivelele sunt aceleași?
adăugat autor Synetech
huh; ce fel de potrivire? Nu-mi amintesc nimic numit matchmaking în primele două jocuri SS.
adăugat autor Synetech

Sunt sigur că nu există nicio modalitate bună de a forța VB6 să descarce controlul.

Iată ce fac eu ... în loc să ruleze Visual C și Visual Basic unul lângă altul, executați VB6 sub VC:

  1. Încărcați VC
  2. Deschideți proiectul care conține obiectele COM
  3. Editați, modificați, etc.
  4. În VC, setați executabilul de ieșire să fie VB6.EXE cu argumentele liniei de comandă corespunzătoare pentru a încărca spațiul de lucru VB6
  5. Acum trebuie doar să apăsați F5 pentru a lansa VB6 IDE și pentru a încărca proiectul dvs. VB6
  6. Când doriți să modificați din nou codul COM, ieșiți din VB6.EXE, efectuați modificările și apăsați din nou pe F5. Atât timp cât salvezi spațiul de lucru, VB6 îți va aminti ce ferestre ai deschis și toate setările proiectului.

Avantajele acestei metode:

  • Puteți seta puncte de oprire în obiectul COM și puteți să le depanați folosind un program de depanare a sursei complete
  • Aveți posibilitatea să depanați cu fericire în C și VB în același timp
  • Ori de câte ori rulează VB6, acesta are întotdeauna cea mai recentă versiune a COM DLL-urilor
0
adăugat
Este foarte inteligent, voi încerca să fac asta. Acum mă întreb dacă contul meu bazat pe cookie-uri vechi poate fi îmbinat cu noul meu cont OpenId, așa că pot marca acest răspuns ca răspunsul ...
adăugat autor Vincent Robert
Aceasta funcționează și cu alte IDE-uri decât VB. Am făcut cu succes acest lucru cu Delphi / VB6.
adăugat autor Daniel Rikowski