thomasvd Posted January 11, 2011 Report Share Posted January 11, 2011 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 Quote Link to comment
thomasvd Posted January 14, 2011 Author Report Share Posted January 14, 2011 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 Quote Link to comment
MoldySpaghetti Posted January 15, 2011 Report Share Posted January 15, 2011 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 Quote Link to comment
mzu Posted January 16, 2011 Report Share Posted January 16, 2011 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. Quote Link to comment
thomasvd Posted January 17, 2011 Author Report Share Posted January 17, 2011 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 Quote Link to comment
ShaunR Posted January 17, 2011 Report Share Posted January 17, 2011 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. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.