Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Migrer un exe activex vb6 en VB.NET - Partage des données

3 réponses
Avatar
Mihai
Bonjour,

J'ai un souci quan dje fait la conversion : avec l'Activex EXE j'ai pouvais
partager des info (concernant l'utilisateur connecté) entre
2 applications (1 IHM EXE vb6 et un projet VBA Autocad 2004).

Maintenant si je vais transformer l'Activex EXE dans un EXE normal (VB.NET)
et un dll (VB.NET) comment partager cette info entre le nouveau EXE et le
projet VBA ?

J'ai fait plusieurs tests et la dll est chargé dans des espaces mémoires
différents et donc l'info n'est pas partagé.
J'ai trouvé une solution sur un forum (MemoryMappedCache) mais je me demande
s'il n'y a quelque chose plus simple.

Bien sur je peux l'implémenté au niveau de la base de données mais je
voulais éviter ça.

Cdlt,
Mihai

3 réponses

Avatar
Eric Vernié [MS]
Bonjour Mihai,

Pourrais tu dire quel mecanisme tu utilises entre ton EXE VB6 et ton Projet
VBA ?
Merci

EV

"Mihai" wrote in message
news:
Bonjour,

J'ai un souci quan dje fait la conversion : avec l'Activex EXE j'ai
pouvais
partager des info (concernant l'utilisateur connecté) entre
2 applications (1 IHM EXE vb6 et un projet VBA Autocad 2004).

Maintenant si je vais transformer l'Activex EXE dans un EXE normal
(VB.NET)
et un dll (VB.NET) comment partager cette info entre le nouveau EXE et le
projet VBA ?

J'ai fait plusieurs tests et la dll est chargé dans des espaces mémoires
différents et donc l'info n'est pas partagé.
J'ai trouvé une solution sur un forum (MemoryMappedCache) mais je me
demande
s'il n'y a quelque chose plus simple.

Bien sur je peux l'implémenté au niveau de la base de données mais je
voulais éviter ça.

Cdlt,
Mihai


Avatar
Mihai
Bonjour,
COM : Comme il s'agit d'un EXE Activex j'ai pu rajouter une référence dans
le projet VBA et dans l’EXE IHM VB6. A la première utilisation (ouverture
soit du projet VBA soit de l'EXE IHM) l'EXE Activex était chargé en mémoire
et il restait jusqu'a la fermeture des deux (VBA et EXE IHM).

Par l'intermède des méthodes publiques de l'EXE Activex, j'ai peux échanger
des infos (notamment l'utilisateur connecté) entre le VBA et EXE IHM.

Actuellement j'utilise VS2003 et je doit partager des infos entre le projet
VBA (donc je pense que par COM), la nouvelle IHM EXE VB.NET par l'intermède
du nouveau dll (VB.NET) ?

Mihai

"Eric Vernié [MS]" a écrit :

Bonjour Mihai,

Pourrais tu dire quel mecanisme tu utilises entre ton EXE VB6 et ton Projet
VBA ?
Merci

EV

"Mihai" wrote in message
news:
> Bonjour,
>
> J'ai un souci quan dje fait la conversion : avec l'Activex EXE j'ai
> pouvais
> partager des info (concernant l'utilisateur connecté) entre
> 2 applications (1 IHM EXE vb6 et un projet VBA Autocad 2004).
>
> Maintenant si je vais transformer l'Activex EXE dans un EXE normal
> (VB.NET)
> et un dll (VB.NET) comment partager cette info entre le nouveau EXE et le
> projet VBA ?
>
> J'ai fait plusieurs tests et la dll est chargé dans des espaces mémoires
> différents et donc l'info n'est pas partagé.
> J'ai trouvé une solution sur un forum (MemoryMappedCache) mais je me
> demande
> s'il n'y a quelque chose plus simple.
>
> Bien sur je peux l'implémenté au niveau de la base de données mais je
> voulais éviter ça.
>
> Cdlt,
> Mihai





Avatar
Eric Vernié [MS]
Bonjour Mihai,

La solution avec .NET dans ton cas est d'utiliser la technologie .NET
Remoting.
L'architecture à mettre en place sera sans doute légerement plus compliqué,
mais cela pourrait se présenter comme suit :
Apps VBA <-> Proxy .NET (sous forme de TLB COM) <-> Une DLL.NET Client .NEt
Remoting <-> Ton EXE VB.NET qui est Serveur ou Hôte .NET Remoting.

Je pense que cela fontionne, reste à toi à l'implementer.

Tu trouveras de l'infos sur Remoting ici.
http://www.labo-dotnet.com/cours/Cours%20du%20Laboratoire/dotNET%20Remoting/0/1351.aspx
et ici

Cordialement

Eric Vernié
Microsoft



"Mihai" wrote in message
news:
Bonjour,
COM : Comme il s'agit d'un EXE Activex j'ai pu rajouter une référence dans
le projet VBA et dans l'EXE IHM VB6. A la première utilisation (ouverture
soit du projet VBA soit de l'EXE IHM) l'EXE Activex était chargé en
mémoire
et il restait jusqu'a la fermeture des deux (VBA et EXE IHM).

Par l'intermède des méthodes publiques de l'EXE Activex, j'ai peux
échanger
des infos (notamment l'utilisateur connecté) entre le VBA et EXE IHM.

Actuellement j'utilise VS2003 et je doit partager des infos entre le
projet
VBA (donc je pense que par COM), la nouvelle IHM EXE VB.NET par
l'intermède
du nouveau dll (VB.NET) ?

Mihai

"Eric Vernié [MS]" a écrit :

Bonjour Mihai,

Pourrais tu dire quel mecanisme tu utilises entre ton EXE VB6 et ton
Projet
VBA ?
Merci

EV

"Mihai" wrote in message
news:
> Bonjour,
>
> J'ai un souci quan dje fait la conversion : avec l'Activex EXE j'ai
> pouvais
> partager des info (concernant l'utilisateur connecté) entre
> 2 applications (1 IHM EXE vb6 et un projet VBA Autocad 2004).
>
> Maintenant si je vais transformer l'Activex EXE dans un EXE normal
> (VB.NET)
> et un dll (VB.NET) comment partager cette info entre le nouveau EXE et
> le
> projet VBA ?
>
> J'ai fait plusieurs tests et la dll est chargé dans des espaces
> mémoires
> différents et donc l'info n'est pas partagé.
> J'ai trouvé une solution sur un forum (MemoryMappedCache) mais je me
> demande
> s'il n'y a quelque chose plus simple.
>
> Bien sur je peux l'implémenté au niveau de la base de données mais je
> voulais éviter ça.
>
> Cdlt,
> Mihai