Vítejte !   Přihlášení | Registrace
Hlavní menu
CATIA fórum.cz
Novinky
Seriál CATIA
Obecně o CAD
Novinky ze světa DS
Makra pro CATIA V5
Diskuse
Vytvořit téma
Koncepty
Seznam oblíbených
Soukromé zprávy
Pravidla
Live CHAT
VIP žádost
Základy Catia
Ke stažení
Doporučujeme
Pracovní příležitosti
Reklama a kampaně
O fóru
Nápověda

Kompilace maker do R24

UživatelPříspěvek
Josef Kočí

Poslat zprávu | Profil
Datum: 30.1. 2015 | Zobrazeno: 10391x
Konfigurace CATIA: V5 V5-6 R2014

Text dotazu:
Jak se dají nahradit API funkce do nové verze VBA 7.1 která je v R24 (V5-6 R2014)

Odvolává se na 64 bit. verzi a funkce svití červeně..Př. Function ShellExecute Lib "shell32.dll".....SHBrowseForFolder..atd
Existuje nějaký obecný návod nebo se musí totálně přepsat kód..

Díky

Ing Jan Cinert

Poslat zprávu | Profil
[#4917] | Publikováno: 30.01. 2015 - 19:12
Zdravím,

já s VBA téměř nedělám a momentální problémy s přechodem na R24 mě jen utvrzují v tom, že tím o nic nepřicházím...

Každopádně problém to je a z kuloárů vím, že pokud se v makrech používá např. WinAPI (nebo jiné), musí se makro přepsat. Míra zásahu záleží na množství použitých externích komponent.

Univerzální řešení asi neexistuje, vždy to bude vyžadovat nějaký zásah do kódu.
Josef Kočí

Poslat zprávu | Profil
[#4919] | Publikováno: 01.02. 2015 - 13:02
To už jsou historické věci, VB.net ještě neexistoval a velký VB jsem neměl. Upřímně, ono i dnes se mi VBA píšou lépe..
Když už jsme u VB.NET.
Jak je to s knihovnami jako Interop.INFITF.dll a další. Má cenu je zaměňovat pro vyšší release catie...
Ing Jan Cinert

Poslat zprávu | Profil
[#4920] | Publikováno: 01.02. 2015 - 18:56
Než přišla R24 (s tím že R22 nebo R23 téměř nikdo neměl), běžela makra kompilovaná na R19 SP9 až do R21, některá i na R24 bez sebemenší změny.

Od R22 se změnila knihovna plošného modeláře (asi už V6 jádro) a tak bylo třeba si vygenerovat interop dll z příslušné verze a nahradit staré. U R24 je několik dalších změn, takže raději nezkouším co snesou staré verze maker a rovnou nahrazuji novými dll. Já je mám embedované v exe souboru, takže vždy rekompiluju, ale jinak opravdu stačí jen distribuovat makro s novými soubory.

Takže záměna je zde téměř nutnost. Na druhou stranu, kolegové co dělají s VBA se s přechodem na R24 docela zapotili.

Určitě má každá platforma své a já VBA jako takové určitě nezatracuju. Naopak, mám několik osvědčených skriptů, které u .NET maker volám externě, protože to v .NET z nějakého důvodu prostě nejede.
Josef Kočí

Poslat zprávu | Profil
[#4921] | Publikováno: 01.02. 2015 - 19:38
Dík za info..budu je raději taky povyšovat..
Co přinesla novější verze knihovny plošného modeláře? Třeba pozicovaný skycář???
jk
Ing Jan Cinert

Poslat zprávu | Profil
[#4922] | Publikováno: 01.02. 2015 - 21:30
Ale kdeže...

Novinek je poskrovnu. Např. jsou přístupná některá nastavení v Options, ale v základu vše při starém. Na druhou stranu jsem to nějak podrobně nezkoumal, většinou jen překompiluju a tím to končí.

Naopak mě překvapila nekompatibilita se staršími releasy při použití GetWorkbenchID. Celé makro pro R19 jede na R24 bez problémů a u této funkce padá - nepochopitelné. Tak snad bude taky nějaké zlepšení...
Michal

Poslat zprávu | Profil
[#4923] | Publikováno: 02.02. 2015 - 08:38
V 64bit VBA rozhrani se změnily deklarace API funkcí apod.
jak na to je napsané např. zde: https://msdn.microsoft.com/en-us/library/office/ee691831(v=office.14).aspx

tady je docela pěkný seznam API funkcí s 32bit a 64bit deklarací. Ještě jsem měl jeden dobrý odkaz, ale nemůžu ho najít, což mě samotného teda dost mrzí.

Potom jsou docela problémy pokud používáte 32bit komponenty. Typicky je to např. common dialog. 64bit varianty neexistují, takže se celý dialog musí nahradit API funkcemi. Ale jde to a funguje to potom jak ve 32bit tak v 64bit VBA rozhraní
Josef Kočí

Poslat zprávu | Profil
[#4968] | Publikováno: 23.02. 2015 - 15:26
Ještě poznatek, nebo spíš co je špatně.
V .net přiřadím v aplikaci referenci catia R24, konkretne INFITF a pod catii R24 funguje vlastnost "CATIA.SystemConfiguration"

Přeregistruju catii příkazem regserver na R19 a už to nefunguje, vlastnost nezná.
Pokud tam byla reference z verze R19 tak na R19 fungovalo...

Změnila se nějak INFITF?
Dík
Ing Jan Cinert

Poslat zprávu | Profil
[#4969] | Publikováno: 23.02. 2015 - 16:22
Určitě tam nějaká změna je, některé vlastnosti nebo metody nefungují, i když se jmenují stejně a mají stejné vlastnosti i metody. Od R22 nebo až R23 by i V5 měla požívat jádro z V6 (tam teprv nastává problém, protože některé dll se jmenují pořád stejně, ale vnitřek je úplně jiný).

Já mám vytvořené dvě sady Interopp dll souborů (zkopíroval jsem si to co vytvořilo Visual Studio) a podle toho pro jakou verzi CATIA kompiluju, takové používám verze dll. A je mi pak jedno co mám zaregistrované, resp. nemusím pokaždé registrovat to co potřebuju.

V podstatě stačí při distribuovat se správnými dll a je (teoreticky) vyřešeno.


Uživatel nepřihlášen

Pro zobrazení obsahu stránky / provedení akce (vytvoření nového téma, napsání odpovědi do diskuse apod.) musíte být přihlášeni.