Effacer les filtres
Effacer les filtres

actxserver not calling application

10 vues (au cours des 30 derniers jours)
Meghan Rochford
Meghan Rochford le 4 Août 2020
Commenté : Walter Roberson le 4 Août 2020
Hello
I am using someone else's script to call an application called Total tide. This application is in my Program Files (x86). The function actxserver is being used within the script and I haven't actually used this before, but it seems to be causing an error:
Any help in how to fix this is very much appreciated. I've looked at the documentation and I'm still not really understanding what's going wrong.
Cheers
Error using actxserver (line 93)
Server creation failed. Invalid ProgID 'TotalTide.Application'.
Error in TotalTide.connection (line 21)
tt = actxserver('TotalTide.Application');
Error in TotalTide.portsInBounds (line 31)
tt = TotalTide.connection;
Error in TotalTide.portsInUK (line 26)
results = TotalTide.portsInBounds(sw(2), sw(1), ne(2), ne(1));
Error in TotalTide.closestPort (line 69)
search_domain = TotalTide.portsInUK();
Error in test (line 14)
port = TotalTide.closestPort(x,y)

Réponses (1)

Walter Roberson
Walter Roberson le 4 Août 2020
TotalTide Defence appears to date from 2002 in some releases. I am having trouble tracking down details, but my suspicion is that the ActiveX control for the program is a 32 bit control, and those cannot be invoked from a 64 bit process.
Your options are to use MATLAB R2015b for windows 32, or else to write a proxy that can receive requests from your 64 bit process and execute the 32 bit control.
I seem to recall having encountered a technology for making those kinds of proxy comparatively easier than writing by hand, but I do not recall the details (it is not something that I have had reason to implement myself.)
  4 commentaires
Meghan Rochford
Meghan Rochford le 4 Août 2020
It's 64 bit (assuming I did this process correctly).
I'm quite clueless when it comes to this sort of thing, as you can probably tell.
Are you saying that the actxserver function cannot handle calling a 64 bit process?
Walter Roberson
Walter Roberson le 4 Août 2020
activexserver should be able to call 64 bit DLL from 64 bit versions of MATLAB.
Unfortunately I cannot seem to verify that you have used the correct ActiveX ProgID, and I also cannot seem to find information about where it should be showing up in the registry.
It appears that you can search for the information; see https://www.freetutes.com/learn-vb6-advanced/lesson4/p35.html

Connectez-vous pour commenter.

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by