|
Um, he's coding a C# app which doesn't use/understand include files. He has to define these (as consts, an enum, whatever) in his source.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
Try this site[^]
The examples are for VB, but I'm sure it wouldn't be too hard to translate it to C#.
"if you vote me down, I shall become more powerful than you can possibly imagine" - Michael P. Butler.
Support Bone
|
|
|
|
|
Has anyone seen a bug in IE or IIS where you have a small image repeated a bunch of times in a page and it sometimes doesn't show up? Hitting refresh a few times seems to fix it. I've noticed this on several IIS based projects (asp.net and perl based) on different machines.
Todd Smith
|
|
|
|
|
IMO its an IE bug, I get it alot. Perhaps due to the 2 "streams" limit, and IE asking for the same file multiple times.
It could also be people running IIS on WInXP SP1.
leppie::AllocCPArticle("Zee blog"); Seen on my Campus BBS: Linux is free...coz no-one wants to pay for it.
|
|
|
|
|
IE 6.0 has a problem with its cache. Once it hits the configured limit, the indexing goes nuts and it can't find cached resources any more.
Empty Temporary Internet Files, and everything should work.
|
|
|
|
|
Hi,
I need to write out a program that will change the time zone based the the nearest Domain Controller. Any ideas? Please help!!!
|
|
|
|
|
I have several forms with controls, and I need to execute some lines of code only when I run my program. But I don't want that these lines are executed when I'm in Visual Studio and open the windows form file.
Thanks in advance.
|
|
|
|
|
You can't explicitly detect Visual Studio, but you can detect whether there is a debugger attached.
See System.Diagnostics.Debugger.IsAttached .
|
|
|
|
|
|
Take a look at the 'Component.DesignMode' property - that's probably what you want.
--
Russell Morris
"So, broccoli, mother says you're good for me... but I'm afraid I'm no good for you!" - Stewy
|
|
|
|
|
|
Hi,
i have a dynamic link library (compiled in VC++ 7.0) and want to use the functions(and types,structs) in my c# program, i already read some articles on this msg-board about unmanaged code, just those only show easy functions with simple return-paramaters.
eg.:
[DllImport("kernel32")] public static extern void Sleep(int dwMilliseconds);
What if the functions return parameter is a pointer to a complex structure(eg.: chained lists)?
As example, i am trying to import functions from a packet construction library called libnet, alone the init function of this library looks like this:
libnet_t * libnet_init(int injection_type, int8_t *device, int8_t *err_buf);
My question now is can someone explain/show/link me how i marshall such return/call by reference variables, will i have to write a wrapper class which acts as a interface between my c# program and the c++ dll, if yes how?
If you can help provide an easy code snippet and show me how i need to start or point me to a book/website/etc.
Thanks in advance....
|
|
|
|
|
Declare the function with return type "IntPtr". An IntPtr can point to any address in memory, and you can de-marshal the object:
IntPtr ptr = libnet_init(...);
Object obj = Marshal.PtrToStructure(ptr);
to use the object in C#, you have to write an interface.
|
|
|
|
|
Hope you can give me a little bit more help anyway here is code snippet how i would use the functions / structs in c++ and create a simple TCP packet.
<br />
#include <libnet.h><br />
int main(int argc, char **argv)<br />
{<br />
libnet_t *lib_pointer = NULL;
libnet_ptag_t tcp,ip;
char *device = NULL;<br />
char errbuff[1024];<br />
write int;<br />
<br />
lib_pointer = libnet_init(LIBNET_RAW4, device, errbuff);<br />
<br />
tcp = libnet_build_tcp(..,..,..,.,lib_pointer,...);<br />
ip = libnet_build_ip(..,..,..,lib_pointer,.....);<br />
write=libnet_write(lib_pointer);<br />
My main question is how can i use the types, consts which are defined in libnet.h ala the .dll file i compiled in vc++. You made the statement about this IntPtr, which i marshal to a PtrToStruct, well so i could also create a PtrToStruct type in c# and let it point to eg. libnet_t?
What i did not really understand is the interface thing you mentioned, could you explain this a bit more deeply?
Thanks for your time again.
|
|
|
|
|
There are a few ways of doing this:
1. Hardest solution: Write a custom marshaller in Managed C++ that converts(or wraps) the non-managed type into a managed type;
2. Take the approach of returning an IntPtr, then defining a custom interface to the embedded type.
3. Easiest solution: If the return type can be decomposed into simpler managed variable types, define the structure in the managed part:
function decl:
my_type* getMyTypeStuff( .... );
where my_type =
struct my_type {
int foo;
int bar;
HWND* gobble;
char[] yadda;
}...;
managed declarations:
struct MyType {
Int32 foo;
Int32 bar;
IntPtr gobble;
byte[] yadda (or char[] yadda, or IntPtr yadda...)
}
[DllImport(....)]
public static extern MyType[] getMyTypeStuff(....);
You may need a MarshalAs attribute in there, not sure, I'm running from memory. Actually, take all of the above with a grain of salt, as I don't have any reference material in front of me at the moment...
Jeremy Kimball
|
|
|
|
|
You could also make use of unsafe coding by using the unsafe keyword. Make shure to set up the compiler options for allowing unsafe code in the project. For further instructions check the help provided with your c# package.
|
|
|
|
|
I like to define my class variables at the top of the file. When I add extra controls in the design view, the new item's definitions are slotted in between those I have already put there. I guess the auto-code-insertion is looking for the last private definition below the class keyword. Can anyone point me at information about how this is actually handled?
|
|
|
|
|
Hello!
I want to implement simple COM object which will communicate with Oracle database somewhere on internet. It looks rather simple. But I have a possibility to use either C++ or C# technology. As I do not know C# very well: someone can help and put some comments - which technology would be simpler to write/manage ?
Or maybe there exists some ready-to-use sample?
Thanks for help
|
|
|
|
|
If you are going to have to *learn* either C++ or C#, i'd suggest C#. However C# can very easily handle this with the .NET data provider classes. The link below is to an article on using the Oracle Data Provider for .NET.
Should give enough examples to help your decision out.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/manprooracperf.asp
|
|
|
|
|
The memory can't be release,after I used OleDBConnection.Close() to close a connection. But when I make the program minimal size, the memory released almost 90 percent. Can anyone help me to solve this problem? Thanks.
|
|
|
|
|
Memory is released when the garbage collector has time allotted to it. If you want to free memory immediately, make sure that all IDisposable implementations are disposed, or call GC.Collect which disposes objects and frees memory, although this isn't recommended.
-----BEGIN GEEK CODE BLOCK-----
Version: 3.21
GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++
-----END GEEK CODE BLOCK-----
|
|
|
|
|
|
dear zhang,
be carfull that when you call connection .close() it will not release the memory but just sleep the connection to the server you can explore you server and find the session available after closeing the connection but to free the memry and release the session to the server you have to call dispose function which will do that
Mhmoud Rawas
------------
Software Eng.
|
|
|
|
|
thanks, but I changed to use dispose function to close the connection, the usage of memory displaying in the task manager is the same.
|
|
|
|
|
zhang_ding wrote:
the usage of memory displaying in the task manager is the same
BTW, that's not the most accurate measurement of application memory use. It doesn't necessarily reflect the actual usage - just the amount assigned to that process.
|
|
|
|