I have a customer/partner who's trying to link their application with ours using our exposed COM functionality. So far, they've got a COM object which represents an instance of our software package and then use our COM methods to programmatically build something up for the user based on what they've done in their application. It's essentially an "export" feature.
What they've asked me to do, which I can't work out how to do is to allow the user to decide when the instance is closed. What I mean by this is when our software package is loaded up, it's viewable and is interacted with by the user. When they are finished they'd naturally click the cross at the top right to exit the software. This doesn't work as the COM object is still "active" in their application. Our software package can only be closed by killing the process in task manager whilst the application that loaded it via COM remains open. Once their application exits, ours will automatically close. It seems as if their application "owns" ours because of the COM call.
I've made a quick demo app in C# to try using things like Marshal.FinalReleaseComObject(myObject) to no avail.
I have a managed class that uses a COM that looks like this.
[Code]....
Since I am using an unmanaged dll through a COM-Interob dll I am wondering if I need free the innerobj manually or if the gc is smart enough to do it automagically if I call ReleaseObject() My class implements IDisposable and I do the following atm: Runtime.InteropServices.Marshal.ReleaseComObject(myobj) Do I need to take care of releasing all inner objects that are created by the COM Object or not? And If I do have to do it, does the order matter (first inner then parent vs parent then inner)?
if you are debugging or releasing a projet , vs writes exe or bin files to the bin and obj folder in a release and debug version, are ther differences bewteen these files with the same name in 4 folders ?, eg myproject.exe
I am somewhat new to object oriented programming and am attempting to flatten a Linq object hierarchy by using a shim class.how to initalize a derived class with property values from a base class?I have two objects, a base object with about 100 properties, and a derived object which inherits from the base object and adds a few additional properties beyond those of the base object. My simple constructor creates the derived object, but I am looking for a way to initialize the derived object properties with values from the base object.Right now I am using reflection to iterate over the properties individually and I suspect there may be a better way. The following example shows my shim class constructor for the derived class, and two properties:
newProperty1 - a new string property of the derived class
flattenedProperty2 - a new string property of the derived class, copied from a 2nd-level object of the base class
Code example:
Public Class derivedObj Inherits baseObj Private _newProperty1 As String[code].......
Is this the correct constructor approach to flatten the object hierarchy using a shim class? My second question relates to initialization of properties in the derived class. The constructor above creates the derived object, but what is the best way to initialize the derived object properties with values from the base object? The following code uses reflection to iterate over the properties individually, but I suspect there may be a better way.
Code example:
' property names are in the string array fieldNames
'baseObjQuery is an ienumerable of baseObj
'derivedObjList is a list of derivedObj[code].....
Is there a simple way to initialize values for the properties in the derived object based upon the values of the common properties in the base object?
Currently we are using the Microsoft data access library Writen with a Oracle data provider for the framework 1.1. My customer has mandated that we upgrade from Oracle 10G to 11G release 2. 11G requires the .net framework 2.0 Is there a way to use the new Oracle data provider 11g release 2 with the older frame work. I have looked at/attempted changing the policy for oracle in the Windows assembly but my understanding is because its a third party DLL, I cannot.
in main form, when a button is clicked, it opens a new form which has a webbrowser. users can use it to browser some sites. if the user closed this form, it goes back to the main form. and they can click button to open the browser form again.
I noticed that one thing. if the browser form is opened, it uses much memory (which is normal because of the site it browses). however, after the browser form is closed, the memory is not released.
In the browser form, when it is closing, the webbrowser is disposed and dereferenced. and no other part uses much memory in the form. GC is called too. what else should I do to release all memory the browser form uses?
now, it is like once the browser form is opened once, the memory usage never goes down even the form is closed.
On the back of a Windows Form, I get a window DC, create a Graphics object with Graphics.FromHdc, and then dispose the Graphics object before releasing the DC.
Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As IntPtr) As IntPtr Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As Integer Dim hdc As IntPtr = GetWindowDC(Me.Handle)
[code]....
Why did they do it this way?Should the DC be released before or after Graphics.Dispose?It is possible that the wrong order can cause resource leaks or memory corruption?
This is just a test app I'm using as a training tool.It connects to a MS Access 2007 db.It gives me no error when I run it from the IDE but when I run the exe from the in elease it gives me this error,Failed to enable constraints.One or more rows contain values violating non-null, unique, or foreign-key constraints.I've found the relation thats causing this but, the data in the tables seems to be fine.No missing Primary keys, no duplicate primary keys, there no extra foreign keys.
I have a main window in my project, and numerous other child widows inside the main.I have noticed that. When I open the main window occupies 1500K of memory, when open one child window then adds in occupied memory 6000K.When I open the second window doing the same. When I close the two child windows the occupied memory is not released.So What I want is to release the occupied memory when ever I close child windows.How I can do that? with some code example in vb.net if it is possible.This problem often sawing in the computers on the Local NET not in my computer (developer computer which has the SQL server on it).
I made a .exe file of my project (in vb2008 express ed.) and it was all working and then I copied the release file out of my project and an error came up (something about UNC share) and i realized the path was wrong, so when I tried to delete the Release file (currently on my desktop) a pop up message says you need to be administrator to delete this file so I press continue (as I am the administrator) and another message comes up saying "You need permission to do this" "Try Again?", when I click "Try Again" the same message comes up. I know this isn't directly involved with VB, which leads me to my second issue:
How can I create a file that is external from VB yet it still works? In my code there is a path that connects it to SQL is it perhaps something to do with that?
I have one global generic exception handler(catch ex as Exception) for all unhandled exceptions from application.But in debug mode(app runs from VS) I don`t want that exceptions go to this global handler.Better for me is when VS stops app on place when exception occurs.
I am writing my first vb.net program that displays a .pdf file in a webbrowser control. I have setup a routine that moves the file to a different folder. The problem is I get the following error: "The process cannot access the file because it is being used by another process." Is there a way to release the file from the webbrowser so that I can move the file.
I'm opening a file called tempImage.jpg and showing it on a form in a PictureBox. I then click a button called Clear and the file is removed from the PictureBox using PictureBox2.Image = Nothing, however I'm unable to delete the file as it is locked open. How can I release it so I can delete it? I'm using VB.NET and a forms app.
I am confused about the folders that setup creates. What are Debug, Relese and Bin folders and what folder I need to give to my user while distributing the application.
I wrote a little (like 40 lines little) Winforms application with VB.net in Visual Studio 2010. Now I've released the code as a Google Code project. It's easy for a developer to get the source but I'd like to make it easy to install too.
What I did was make a release build then zip up what it created, this included a setup.exe. There was also an option to "publish" my project which looks like it can enable update checks and other stuff.
I want to create a .txt and then run a batch file which runs a .pyc which uses this file as a parameter. When I do this, I get a message that says the python program was unable to access the file. However, if I break after creating the .txt, then manually open, save, and close it (note: open close only doesn't work), and then continue running my code, it works fine. I think that my program still has control of the text file when the python program tries to access it, however I don't know how to release control.
'array input is system.arraylist of all words that I want to have in the grammar Dim fso As FileSystemObject fso = CType(CreateObject("Scripting.FileSystemObject"), FileSystemObject)