Erwägungen:
1. Der tunesische Staatsangehörige Y._, geboren 1972, heiratete am 3. März 2005 die 1956 geborene bosnische Staatsangehörige X._, die über eine Niederlassungsbewilligung im Kanton Zürich verfügte. Gestützt auf die Ehe erhielt er eine Aufenthaltsbewilligung. Wegen Aufgabe der ehelichen Gemeinschaft wurde die Bewilligung nicht erneuert; die entsprechende Verfügung wurde am 25. Juni 2008 in letzter Instanz vom Verwaltungsgericht des Kantons Zürich geschützt. Y._ war bereits zuvor ausgeschafft worden.
Am 22. Oktober 2008 ersuchten Y._ und X._ um Einreisebewilligung und Erteilung einer Aufenthaltsbewilligung für Ersteren. Die Sicherheitsdirektion (Migrationsamt) des Kantons Zürich wies das Gesuch am 20. Oktober 2009 ab, und ein Rekurs an den Regierungsrat des Kantons Zürich blieb erfolglos. Der Entscheid des Regierungsrats vom 3. Februar 2010 wurde am 10. Februar 2010 gültig eröffnet. Dagegen gelangten X._ und Y._ mit Beschwerde an das Verwaltungsgericht. Dieses trat darauf mit Beschluss vom 12. Mai 2010 nicht ein, weil die vom 12. März 2010 datierte Rechtsschrift erst am 15. März 2010 zur Post gegeben und damit nicht innert der gesetzlichen Beschwerdefrist von 30 Tagen (§ 53 in Verbindung mit § 11 Abs. 1 und 2 des Zürcher Verwaltungsrechtspflegegesetzes [VRG]) erhoben worden sei; das Gesuch um Fristwiederherstellung lehnte es ab, weil keine Wiederherstellungsgründe wirksam geltend gemacht worden seien (§ 12 Abs. 2 in Verbindung mit § 70 VRG).
X._ und Y._ reichten am 8. Juli 2010 beim Bundesgericht eine vom 24. Juni 2010 datierte Beschwerde gegen den Entscheid des Verwaltungsgerichts ein. Sie beantragen die Bewilligung der Einreise und des Aufenthalts für den Ehemann.
Es ist weder ein Schriftenwechsel noch sind andere Instruktionsmassnahmen angeordnet worden.
2. Gemäss <ref-law> haben Rechtsschriften die Begehren und deren Begründung zu enthalten (Abs. 1). Dabei ist in der Beschwerdebegründung in gedrängter Form darzulegen, inwiefern der angefochtene Akt Recht verletzt (Abs. 2). Erforderlich ist eine sachbezogene Begründung, das heisst eine Auseinandersetzung mit den für das Ergebnis des angefochtenen Entscheids ausschlaggebenden Erwägungen der Vorinstanz. Wird, wie vorliegend, ein Nichteintretensentscheid angefochten, muss in der Beschwerdebegründung Bezug auf die Nichteintretensgründe genommen werden.
Die Beschwerdeführer befassen sich ausschliesslich mit der materiellrechtlichen Bewilligungsfrage; zur verfahrensrechtlichen Frage der Rechtzeitigkeit ihrer kantonalen Beschwerde bzw. zum Bestehen allfälliger Fristwiederherstellungsgründe äussern sie sich nicht. Es fehlt mithin offensichtlich an einer hinreichenden sachbezogenen Begründung (<ref-law>), und auf die Beschwerde ist mit Entscheid des Einzelrichters im vereinfachten Verfahren gemäss <ref-law> nicht einzutreten.
Ergänzend ist festzustellen, dass auch einer formgerecht begründeten Beschwerde kaum Erfolg beschieden gewesen wäre, ist doch nicht ersichtlich, inwiefern die Auslegung und Anwendung der kantonalrechtlichen Frist- bzw. Fristwiederherstellungsbestimmungen durch das Verwaltungsgericht mit schweizerischem Recht (<ref-law>) nicht vereinbar wären.
Dem Gesuch um Befreiung von der Bezahlung von Gerichtskosten kann wegen Aussichtslosigkeit der Beschwerde nicht entsprochen werden (<ref-law>). Damit sind die Gerichtskosten (<ref-law>) dem Verfahrensausgang entsprechend den Beschwerdeführern zu gleichen Teilen unter solidarischer Haftung aufzuerlegen (Art. 66 Abs. 1 erster Satz und Abs. 5 BGG).

Demnach erkennt der Präsident:
1. Auf die Beschwerde wird nicht eingetreten.
2. Das Gesuch um unentgeltliche Rechtspflege wird abgewiesen.
3. Die Gerichtskosten von Fr. 500.-- werden den Beschwerdeführern je zur Hälfte unter solidarischer Haftung auferlegt.
4. Dieses Urteil wird den Verfahrensbeteiligten, dem Verwaltungsgericht des Kantons Zürich, 2. Kammer, und dem Bundesamt für Migration schriftlich mitgeteilt.
Lausanne, 26. August 2010
Im Namen der II. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber:
Zünd Feller