|
There is an option if you want to make one big exe (unmanaged code will not work here) is to use IL Linker/Binder. Do a search on GotDotNet for it.
<a TITLE="See my user info" href=http:
|
|
|
|
|
mikechambers wrote:
Because my code is broken up into different projects to make it more reusable.
Why not take your reusable code and put into into DLLs? That way you just add a reference to your DLLs and they are pulled into your application. This allows you to keep the in different projects and still be used in any of your applications. Just change the type of your project from EXE to DLL for each of those extra projects and add reference in your main application.
Rocky Moore <><
|
|
|
|
|
I have been thinking about this. So i could just combine all of the DLLs into one DLL?
i.e. I would have one exe and one dll? The DLL would then load the EXE.
Would I have to change anything in the EXE or would it know to look in the new DLL?
thanks for the input. I am new to c# and thus am not familiar with how apps are usually deployed.
mike c
|
|
|
|
|
Well, actually, you have your program broke up in project right now. You would select the output to be a DLL for each of the projects which contains "supporting code". The project that has your main entry would be set as EXE output.
Assuming you have all your projects in one solution file, you would right click on the References item in your project that contains the EXE and select Add Reference. This will bring up a that should have three tabs and the last one being "Projects". The tab will list all the projects that are in the currently solution and you simply select the projects that you main application will need (probably all of them) and hit [Select] and then OK. That will bind those DLLS to your main application. Each project will produce on DLL and you will have your single main application (EXE). When you launch your EXE it will automatically load the DLLS as needed. Not one line of code to do it.
You might try just creating a new solution with a single WinForm Windows application. Then Insert another project into the solutions but this time use the "Class Library" project. That will build your skeleton project already set as a DLL. Then in the class it generates simple put a single method in there ( that does:
public static IAmHere(string message)
{
System.Diagnostics.Debug.WriteLine(message);
}
Right click on you main WinForm project on references and selec the Add References and add the project reference to the Class Library project you created.
After that, add in your main form, like in the constructor, a call to your library class you created and the IAMHere function your added to it like:
TheClassICreated.IAmHere("Yep");
This will call the method that is in the class library dll you created. To your application it does not care if it is in a DLL or the main application, it calls the same in either case. The only thing you need to do to let your application use the code as if it is in the main application is to add the reference to the project.
In the old C++ days, I did not bother with DLLS unless I had to. In C# they are so easy to use, I end up with a dozen or more of them in a sizable application. I build librarys of utility classes, wrappers to controls, abstraction classes for abstracting data, simply popup forms for quick data input, and tons of other things. I put each into a root namespace and then create others similar to the .NET namespaces (like MyLibs.Windows.WinForms for my control wrappers or MyLibs.IO.Data for my data abstraction routines). It is just a method to organize the classes so that I can find them easily without innermixing them with the standard classes.
When you add a reference to main exe project it will usually copy the dlls to your output directory. You can specify if you want them copied or not. I usually have them copied.
Also, with DLLs in .NET you do not have the linkage problems you do with C++.
Rocky Moore <><
|
|
|
|
|
Thanks for the info. This is actually exactly how I have my solution set up, and as you point out, it creates multiple dlls and and EXE.
I was trying to find a way to then include all of those in one file, so I don't have to distribute all of the DLLs seperately.
thanks again for the suggestions...
mike c
|
|
|
|
|
I have been working on this problem but still no satisfactory result, so i hope someone could help me out here.
I have a RichTextBox and and its width is fixed. When i input some text to it at runtime, i need to dynamically adjust the height of this rich text box so that all the text are visible, but no scroll bars are to be used.
Anyone have any ideas??
Weiye, Chen
When pursuing your dreams, don't forget to enjoy your life...
|
|
|
|
|
public bool InitializeGraphics()<br />
{<br />
try<br />
{<br />
PresentParameters presentParams = new PresentParameters();<br />
presentParams.Windowed=true;<br />
presentParams.SwapEffect = SwapEffect.Discard;<br />
device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);<br />
device.DeviceCreated += new System.EventHandler(this.OnCreateDevice);
this.OnCreateDevice(device, null);<br />
return true;<br />
}<br />
catch (DirectXException)<br />
{ <br />
return false; <br />
}<br />
}
Why do we need to subscribe to the DeviceCreated event in this situation? enlight me, thanks in advance
|
|
|
|
|
wingcom wrote:
Why do we need to subscribe to the DeviceCreated event in this situation? enlight me, thanks in advance
Not from the dumb example from MSDN... WHy do they bother at all? Its the only reason I havent touched any 3d stuff.
SO, you dont really need it, unless your 3d device will be resetting and you need to be notified of this.
<a TITLE="See my user info" href=http:
|
|
|
|
|
Hello again.
I have 2 related tables in an Access DB:
MainTable --------> RelatedTable
^
^ ^
(one) to (many)
The typed DataSet is filled properly and then a DataGrid takes responsibility for displaying the information. Everything works perfect. I get the "+" link to navigate to the RelatedTable, and the data is displayed accordingly.
Now, I need to display in the "child" DataGrid (the one that opens after you click the "+" link) not only the related data, but also some other data from the same RelatedTable (but not related to the MainTable).
Can this be accomplished through the "child" DataGrid, since the initial purpose of such a mechanism is to display only the related data from a child table?
|
|
|
|
|
I have this nice code
<br />
Microsoft.Office.Interop.Outlook.ApplicationClass app;<br />
<br />
private void button1_Click(object sender, System.EventArgs e)<br />
{<br />
foreach(Microsoft.Office.Interop.Outlook.Reminder reminder in app.Reminders)<br />
{<br />
listBox1.Items.Add(reminder.Caption+" @ "+reminder.OriginalReminderDate.ToString());<br />
} <br />
}<br />
<br />
private void Form1_Load(object sender, System.EventArgs e)<br />
{<br />
app = new Microsoft.Office.Interop.Outlook.ApplicationClass();<br />
}<br />
But I need some code to get the outlook tasks too, someone can help me?
I couldn't find it anywhere.... only the TaskItemClass and the Interface TaskItem
Greetings....
|
|
|
|
|
I am creating a msi installer for a command line program I have
written in c#.
I would like the user to be able to just type the program name from
anywhere on the file system, and have the program run.
Basically, I need to alter the PATH environment variable to include
the installation directory. I have spent some time looking for
solutions, and I haven't been able to find any thing definitive.
Options I have found include:
-Editing the registry from the installer: requires reboot, and deletes
entire path variable on uninstall.
-calling a Custom Action DLL to edit the path. DLL must be written in
c++ (is that correct?). Can't uninstall?
-write a vbs script to be run by the installer and set the path. (I
don't know VBS script)
-provide instructions to the user to tell them how to edit their path
: not very user friendly.
However, none of these seem like good options. I understand some of
the reasons why setting an environment variable is not really a good
idea, but surely this is something that needs to be done quite often.
So, any suggestions or ideas?
mike c
|
|
|
|
|
The Windows Installer Environment table has a good solution for setting environment variables, but unfortunately the Visual Studio deployments projects don't give you a way to author entries in the appropriate table. You'll have to use some other tool to author that part of your setup.
If you've got money to spend, there are several more sophisticated setup packages that give you a GUI authoring tool and access to this.
I've also done things like this by using the Orca tool (part of the Windows Installer SDK portion of the Platform SDK) to create a merge module (.MSM file) which I include into a setup otherwise authored in Visual Studio's deployment project tool. This will take you more learning & effort, but it's a free download
Burt Harris
|
|
|
|
|
Thanks for the tip.
So, I would basically create some seperate code (in c#?) which would manipulate the environment variables using the Environment Table.
Basically, I want to add my application install directory to the path during installation, and remove it if the app is uninstalled.
Btw, I jsut download and installed the SDK you mention above, but I cant seem to find the orca tool you referenced.
thanks for the leads...
mike c
|
|
|
|
|
mikechambers wrote:
So, I would basically create some seperate code (in c#?) which would manipulate the environment variables using the Environment Table.
The easiest way would be to use Orca to add the environment variables to the Environment table of your Windows Installer database after you create it with the VS .NET deployment thing.
mikechambers wrote:
Btw, I jsut download and installed the SDK you mention above, but I cant seem to find the orca tool you referenced.
Are you sure you installed the Windows Installer section of the Platform SDK? Because I have it on my computer in the Program Files\Orca9x directory (for you it would be Program Files\OrcaNT, I believe). Note that it is not in the Microsoft SDK\bin directory, but the installer for it is there.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
thanks. It is not there, so perhaps I installed the wrong sdk.
I realized that I can have the installer launch an executable or call a dll (written in c#?).
So, i might just put the code I need in there.
mike c
|
|
|
|
|
Mike,
I'd recommend that you don't modify the PATH variable at all - the path has a limited size and a lot of installers edit the PATH unnecessarily. Instead, setup a registry subkey under the App Paths key:
[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths]
Easy to delete at uninstall time too.
You set the key name to your .exe name (no path) and set the default unnamed value to the full path to the .exe; optionally you can also set a Path value containing the extra directories needed by that executable (really useful for multiple applications that refer to common libraries).
Beware though that if your executable name is something obvious that may have been used by someone else (e.g. "msdev.exe") you may end up overwriting the existing key.
BTW, I'd also recommend that if you do install shared libraries somewhere then store that path in the registry (under HKLM) to allow other installers to find them, rather than hardcoding installation folders.
Regards,
John Bates.
|
|
|
|
|
thanks for the suggestion on app path. I had looked into that, but unfortunately, the app path is not search when commands are run from the command line. only from the run window.
mike c
|
|
|
|
|
What's necessary to get a screen capture from a program that uses video overlaying (Windows Media player for one). Several programs such as SnagIT advertise being able to capture from these programs. Is there anything special in code that I need to use besides a standard bitblt?
|
|
|
|
|
i have searched and searched, does any one have any example of sending an outlook meeting request w/o having to log into mapi? i do not want to manage the outlook appointments but rather when my application creates a task i want to send a meeting request to the user w/o have to maintain that or create entries from a local user profile. if there was a way to send it through a special formatted smtp message that would be great. any help is much appreciated!
|
|
|
|
|
I'm looking for a way to write an object on a file. In Java I use ObjectOutputStream with a FileOutputStream.
There's in C# something similar?
Marco
|
|
|
|
|
Hava a look at the BinaryFormatter class
<a TITLE="See my user info" href=http:
|
|
|
|
|
fantastic I'll try following the example of the guide:
string fileName = Path.GetTempFileName();
FileInfo fileInfo = new FileInfo(fileName);
// Write the current time to the file in binary form.
DateTime currentTime = DateTime.Now;
FileStream fileWriteStream = fileInfo.OpenWrite();
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(fileWriteStream, currentTime);
fileWriteStream.Close();
// Read the time back from the file.
FileStream fileReadStream = fileInfo.OpenRead();
DateTime timeRead = (DateTime)binaryFormatter.Deserialize(fileReadStream);
fileReadStream.Close();
Console.WriteLine("Value written {0}", currentTime);
Console.WriteLine("Value read {0}", timeRead);
Marco
|
|
|
|
|
Hi,
I am trapped in my graduation project and realy have to deliver it after 3 days so plz help.
I finished my Project, it is a desktop application programmed in C#, but i want to create a cool looking graphical user interface. something like "Realone player" or whatever look with cool buttons, nonrectangular form shapes and animations, so if there are any useful tips, GUI resources web pages that can help will be great.
Also i am looking for a working outlook bar, i got those in the utility library and lumisoft but they don't work as expected (not if compared with the one in Xceed Smart UI for .net)but unluckly i couldn't purshace it. where i can find one.
THANX SkywAlker
|
|
|
|
|
|
hello,
here is a little problem that i am facing at now.
how can i retrieve the values in an html table (on a web pages form) and i can then insert it into some database.
i.e. have to retrieve values from the page (html table) and then have to insert them to database table.
i am using c# and asp.net and database is sql server.
please guide me on this.
LOOKING FOR SOME HELP
ASIM NAZIR
Asim
|
|
|
|