How To Communicate A Managed DLL With The Executable That Called It
Oct 27, 2010
I am developing a solution (VB.NET and Netframework 4.0) with a main executable and several DLLs (VB.NET and Netframework 4.0).The main program, among other things, shows datagriviews with lists of customers, providers, etc. and offers to add or edit them.If the user asks any of these actions in a customer's list, for example, I create a new customer class (which is contained in a DLL called customer) and pass to it the desired action.The DLL creates and shows the form to fill customer data and handles the edition/addition and the database update (add/update records).If a customer was actually added or its information changed, I should refresh the datagridview; if the addition/edition was cancelled there is no need to refresh it.I don't know how to code the DLL to notify the main executable that it needs to refresh the datagridview and I don't want to refresh it always, since there could be thousands of customers.
In VB .NET, how can I have two copies of an executable communicate with each other over the internet? For example... similar to how and instant messenger might work.
I have a program that outputs a file. I want the user to be able to just double-click the output file and launch the program, just like Word and Excel. In Word for instance, one doesn't necessarily have to open WORD then click on File--> Open and locate another Word doc. He can just go to the folder and open the Word doc. I want to implement the exact scenario in my program.
So far I have tried creating TextFile and added it to the Resources. On FormLoading, I simply I stream-read the Resouce file, but I can't write to the Resource on FormClosing, since the Resource is ReadOnly. Also, the Resource is built & compiled so I suppose you can't add anything to it at run time.How you lunch an output file without launching the Executable program that created it?
I have an executable that I was able to get working on all XP machines by registering all the .dll's associated with it.On Vista, however, I go through the exact same registration process but right when I open the executable it goes to a "WindowsApplication1 has stopped working" dialog. I registered the DLLs in the SysWOW64 folder. I also ran Dependency Walker which came up with IEFrame.dll as flagged, don't know if that is relevant though.
i was wondering if it possible to have a condition where lets say you have a column in the datatable called amount and a textbox acting as the filter called say maxamount to set it so the rowfilter when filtering the table will sum the number in the amount column until the number in maxamount is met, then stop and only return the rows where the total sum of the amount column is equal or less than the maxamount value, so i guess if the next row takes us over the maxamount it discards this row and returns the rows previous to it. is this possible using datagridview rowfilter or should i be loooking elsewhere to achieve this?
I have an sql table called Stock with two fields called StockID and StockCode. I want the user to select the stockcode from a combo which in turn populates the stockid for that item into a lable on my form. I have already populated the stockcode into the combo but dont know how to compelte the rest.
Imports System.Data.SqlClient
Public Class cbo2 Private Sub cbo2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
I have a form called FrmPracDetails which is built up with a List view called LvwColProc. Therefore when you click a field on the LvwColProc it takes you to another form called FrmColProcessing, here you can make changes to certain fields which are also present on FrmPracDetails. What I want to do is when you make changes on FrmColProcesing and Click the Save Button (which calls the Save function)the changes appear instantly on FrmPracDetails. Please note, FrmColProcessing will always be open next to FrmPracDetails. I have tried to put this code in the Save function present in FrmCol Processing as shown below, but it doesnt Refresh FrmPracDetails form. [code]
This JCL_History object is basically a Generic.List encapsulated in a wrapper and has the following method:
Public Sub Enqueue(ByRef value As String) If Members.Contains(value) Then Me.RemoveAt(Members.IndexOf(value))
[Code].....
In my testing I have 2 items in this JCL_History list. When I call that first line of code I posted (the one that invokes Enqueue) with I = 1 I expect the first item to be shuffled to the bottom and the second item to be shuffled to the top.
After the thread returns from Enqueue I notice that this is exactly what happens to my list, HOWEVER if I hit the "step_in" button after the execution of Enqueue I go into the Default Property's set method where Index = 1 and value = and it screws everything up, because the item that got shuffled to the end (index 1) gets overwritten by the item value shuffled to the top.
So basically the set method on the default property is getting called at what I think to be a completely ridiculous time. What gives? By the way I'm running VS2005 on XP.
I Actually want to provide a new service which requires creating executables on the fly from executables generated in vb.net. For example lets say I have a form with a textbox and in that textbox we pass an argument which is for example the serial of the product, then we have a button which once clicked will generate an executable on the fly which has also a textbox requiring that serial to run? That was only an example but the main thing is how to generate that exe on the fly.
Can you look at my coding and let me know what I'm missing or doing wrong?I have a SSRS report that is called from a ReportViewer control and the ProcessingMode for this control is Remote. The report also has 1 parameter in it's DataSet.In the code I placed a MsgBox to make sure the code is finding the parameter and returning the parameter name. I am trying to stick the value of 10 into the parameter for playerID 10. Data for this player does exist.
I believe I need to add some more code to make this work but I'm not sure what else to add.
When the code executes the report is displayed but no data is shown in the report.
I recently found an awesome tool called "Freemind" that is called a 'mind mapping' program. It's similar to MS Visio but way cooler and more automated.I reeeallly would like to integrate this into a VB.net Form, but how?
Has anyone seen or heard of mind mapping inside VB.net before? Are there programs out there already that work with VB.net or anyone have an example they have seen / built that works?
I am writing classes in VB.Net (both managed). The main class "A" creates an instance of "B". Class "B" must call a method of Class "A". I need to know two things (syntax, etc...):
1. How does class "A" tell class "B" what method to call?
2. How does class "B" call the method?
The method must pass back an array of Shorts (in this particular example), either as a return value, or as a ByRef argument.I don't want to use an event if I don't have to. The execution is timing critical. (I assume event handling involves a lot of overhead by the operating system, but I may be wrong.)
I have absolutely no background on programming in C (or any other unmanaged languages for that matter) yet I would like to use the GetBestInterface function from the IP Helper API in my .NET application. I tried to understand how P/invoke calls can be used to make calls to native methods, but there are many things that just don't make sense to me (like how types in managed code map to unmanaged types).
Is there an alternative function somewhere hidden in the System.Net namespace that does roughly the same thing? Or could I write my own alternative using existing base classes combined with some magic? Because that's basically what it seems to me: magic. There is no real explanation for how the method accomplishes what it does as far as I can tell...
I just discovered the LocalEndPoint property on the System.Net.Sockets.Socket class which I think could be quite useful in this. To my understanding it will do the best-interface-picking on my behalf and I'll just need to get the NIC that corresponds to the local endpoint.
I am having a very strange memory leak that seems related to databinding. It is very hard to reproduce, so I won't post any code here to do so, but will just describe the problem.We have data entry forms which have controls which bind to custom business objects through a BindingSource object.
I have event Button that creates text box in run time.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim textbox1 As New TextBox static Dim shiftDown As Integer static Dim counter As Integer
[code]....
All the text boxes that has been created displayed in GroupBox control dynamically. how GroupBox control size can be managed according to quantity controls inside it.
I have a .Net application (VB in particular, although I would this to be as language agnostic as possible) that uses a COM object (made in C++). I need to implement a event in COM that passes a char array from C++ to .Net. I guess I need to convert the array to a managed array; How can I do this?
I am well aware that finalizers are typically used to control unmanaged resources. Under what circumstances may a finalizer deal with managed ones? My understanding is that presence in the finalizer queue will prevent any object, or objects strongly referenced thereby, from being collected, but it will not (of course) protect them from finalization. In the normal course of events, once an object is finalized it will be removed from the queue and any objects it references will no longer be protected from collection on the next GC pass. By the time a finalizer is called, the finalizers may have been called for any combination of objects referred to by the object; one cannot rely upon finalizers being called in any particular sequence, but the object references one holds should still be valid.
I am trying to develop a dll in VisualStudio2005 in vb.net that will communicate with a spectrometer attached to the USB port of the computer.Now the dll exists in C++ and it works like a charm. It is unmanaged code.Now if I try to translate this code in VB.net (because our app is in VB and my boss wants it in VB for maintainability) I have problems.
First of all, I am trying to create a file to open that port. The code in C++ looks like below and it works. Needles to say I tried to call the C++ dll from our app and it works. If I call the vb dll it doesn't. It gives me "access denied" no matter what I tried. I am not sure if my CreateFile is wrong or it's .net. I read somewhere that I need a manifest file included in the dll? Has anyone experience something like this? Why would i get "ACCESS DENIED" all the time?
// close and clear current stuff ClosePort(); swprintf( sDevice, L"\\?\usb#vid_0765&pid_%s#******#{%s}", Device, PRIVATE_IID_STR );
I need to write a DLL in C that is used a plugin for an existing application.The DLL has to be compiled by the Visual Studio 2008 compiler with the following options.[code]It's then linked to applications library's.What it actually needs to do and what's causing me the issues is that within one of the methods it needs to pull data from a sql server 2008 r2. From what I've seen today you wouldn't be able to do this directly in C as SQL Server past 2005 is designed to communicate with CLR languages( C#, C++, VB.Net).It was suggested that I handle all the database communication with a VB.Net dll and then call said function from within the C dll. Most of what I've found on the topic of calling managed dll's from unmanaged code has talked about pinvoke or com wrappers and mainly from the perspective of c++.
In My application, I have an MDI form. From MDI form I open all forms as child forms. I have implemented IDisposable for all large objects like file stream DB connection etc. In the Form_Disposed event I dispose all unmanaged objects. After the child form is closed, all unmanaged objects are disposed but managed objects (controls and form) are not disposed and still in memory. I find it from .Net Memory Profiler ([URL]).
So I have write code to remove all event handlers of all controls and form. Now, When form closed, dispose is called and all event handlers and controls are disposed, but controls and form are still in memory.
I am using a slightly modified version of this code. to create a mission critical application. That files that will be encrypted are very important. This has to be done from scratch because there are some other things that has to be done along with this. How secure is this? Its impossible to crack this encryption right? [Code]
Our company has relied heavily on COM+ components to centralize our DAL code and take advantage of the ability of COM+ to handle transactions and connection pooling. When we started using COM+, it was just with VB6 DLLs and always through late-binding so we could take advantage of DLLs being hosted on a different server.When we started moving to .NET in 2005, we ported our DAL functionality to .NET and continued to use COM+ and late binding to host the components. We would instantiate the objects like so: objBalLauncher = CreateObject("NETBLL.Launcher", "\" &strCOMPlusServer Name)I noticed that CreateObject seems to be for ActiveX COM components, so this has me thinking about two things:If COM+ was designed for unmanaged components, is there a cost to using COM+ with managed .NET DLLs?Is there a cost to using CreateObject() to late-bind to an assembly from within .NET code? Does this force your code to cross the managed/unmanaged barrier to communicate with the DLL? While I would be interested in hearing about alternatives to COM+ (which I'm sure are available by now), I'm most interested in hearing about what expense I incur from using managed DLLs within COM+.
How can I show a form as a child of a window that isn't in my program?I have a window handle to what should be the parent, but I don't see any managed method for SetParent() on a form. Is there one? It also seems that the form.Show() method only accepts managed objects implementing IWin32Window.f there isn't a managed method, what is the preferred method for declaring the API for maximum compatibility with future systems? Like this?:
<DllImport("user32.dll")> _ Private Shared Function SetParent(hWndChild As IntPtr, hWndNewParent As IntPtr) As IntPtr End Function
I am trying to get some data from a C Dll via a structure and I am getting incorrect values back. I tried a couple of examples I found but they do not work. Since I do not know the proper way. I do not know how to fix it. Can anyone give me any advice, hints, redirection or any assistance what-so-ever. I've been struggling with this for weeks.
vb GraphicsCard = New Device GraphicsCard.SetCooperativeLevel(Me, CooperativeLevelFlags.FullscreenExclusive) Dim description As SurfaceDescription = New SurfaceDescription surface to DirectX
Now the above works fine... for a fullscreen direct draw app...however i want to make a non-fullscreen app... how can i do that?I have tried several things with no avail and i also want the app to keep drawing when it does not have focus?