Jump to content

Need Help : update a "dynamuic dll"


thomasvd

Recommended Posts

Hi all,

I'm sorry if my post isn't in the good topic but I'm new on this forum and i think i'm in the best section for my request.

I need some help on my application because there is one thing that I'm sure it's possible to do with Labview but I didn't find it.

The problem is that, my program use a DLL (activeX) which is generated "dynamically". So, each time I impove my DLL and I put it in my application, Labview failed in finding the "method" of my DLL (error 3008).

Currently, to solve the problem, the only solution that I found was to delete the property node and replace it (without changing anything). The problem with this solution is that I have to do this with all my property node and it's too contraignant because the DLL improve too often.

Is there a way to correct my problem more simply? I'm not sure to be clear in my explaination (my english isn't as good as I would like) so If you have any question to understand my problem ask me.

Regards,

Thomas

Link to comment

Hi all,

I'm sorry if my post isn't in the good topic but I'm new on this forum and i think i'm in the best section for my request.

I need some help on my application because there is one thing that I'm sure it's possible to do with Labview but I didn't find it.

The problem is that, my program use a DLL (activeX) which is generated "dynamically". So, each time I impove my DLL and I put it in my application, Labview failed in finding the "method" of my DLL (error 3008).

Currently, to solve the problem, the only solution that I found was to delete the property node and replace it (without changing anything). The problem with this solution is that I have to do this with all my property node and it's too contraignant because the DLL improve too often.

Is there a way to correct my problem more simply? I'm not sure to be clear in my explaination (my english isn't as good as I would like) so If you have any question to understand my problem ask me.

Regards,

Thomas

Hi all,

I permit me to repost a message because of I'm still blocked by the same probblem. I try to find a way to change some option in labview but nothing changed and for each new dll, I'm forced to regenerate all the proerty and method node. IT's too tedious for my application

Regards

Thomas

Link to comment

Hi Thomas,

I don't know quite what you mean, and I'm guessing others won't either. Some of the smartest people I've ever met, clearly more intelligent than myself, didn't have strong control of English, so don't let that deter you ;) I'm even imagining a strong brazilian accent as I type this, describing 'mootexes'

Your best bet would be to post a complete example of what you're talking about. And in fact, I've found that when I have a problem I can't solve, once I finally get to producing an example I could post to the web, I've figured it out. That's really the best way to get rid of language ambiguities ... just recode it and post it. You might even help someone else out in the process!

-Ben

Link to comment

thomasvd,

let me restate what you've just said:

You need to be able to update a dll, containing ActiveX object without restarting LabVIEW. Is this correct?

If so, I would incapsulate all ActiveX calls into a new VI, loaded via VI Server. So, when your main program is done executing, it unloads a VI from memory, thus destroying all references to your dll.

Link to comment

hi,

You need to be able to update a dll, containing ActiveX object without restarting LabVIEW. Is this correct?

It's not exactly my problem. In fact each time I changed the DLL, update of the dll is OK and I can see in the browser properties the new method and properties of the dll. The problem is that as our dll is generated dynamically, even if the node method are seen by Labview (after restarting), it doesn't work correctly because of these methods have a new adress internal the dll.

To simplify, I would like say to labview:

- The dll is new (OK for this point) but old methods and properties have new adress in the dll, so rescan the dll to replace the adress known by the new one.

If so, I would incapsulate all ActiveX calls into a new VI, loaded via VI Server. So, when your main program is done executing, it unloads a VI from memory, thus destroying all references to your dll.

I'm not sure to understand what you're saying but it's not possible for me to incapsulate all ActiveX calls into a new VI because currently the activeX calls are in severals VI (approximatively more than 70 )

Regards

Thomas

Link to comment

Hmmm.

Am I right in thinking that you are trying to access exposed methods via the dll interface instead of the COM interface?

An activeX dll needs to be registered with the OS. Every-time you create your dll you should uregister and re-register it using regervr32. Then in your VI you can use the "automation open" to open a refnum which can be wired to the property nodes.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.