|
Thanks for the replies everyone, I'm probably not explaining myself too well...the method I am trying to use from my dll is a method that uses System.Reflection to be able to run any other method by using a string so when I say that the method in AnyDLL is referencing a method in my application pretend that the method could be referencing any method in any other application...essentially I am just trying to get the method in the DLL to run as if it were running directly in the application and not contained in some DLL...is that even possible? I was experimenting w/ DllImport and now I've begun playing around w/ Assembly.LoadFrom("dllname") thanks to an earlier suggestion... any more ideas?
|
|
|
|
|
Hi,
some info, not a full solution tho:
- you need DllImport to call unmanaged (i.e. native) code (that resides in a dll)
from managed code (say C# that resides in an exe or another dll), and nowhere else;
if everything is managed, then NO DllImport.
- you can distribute managed code over as many DLL files you want, it does not
really matter; if it needs to bind at run-time (as with reflection), then your
code must find the right DLL; finding the class and member/method inside it
is independent of the EXE/DLL where they reside.
SO my suggestion is: first try to have an EXE perform reflection on itself;
only when you get that working, move the reflecting code to another DLL and
make it work again.
|
|
|
|
|
Hello,
I have a confusion about the word delegate. can any body clarify my doubts...what is delegate ? what's the use for that...please give some sample code for that ..please help me..
alex.
|
|
|
|
|
|
Malayil alex wrote: can any body clarify my doubts...what is delegate
A lot of people actually did explain it:
Search result on CP[^]
All the best,
Martin
|
|
|
|
|
Hi,
if you happen to be familiar with some other programming languages, such as C:
a delegate is very much like a function pointer.
It has one extra twist: it also holds a reference to an object (an instance of
the class that holds the methods code), so a delegate knows which method to invoke on which object.
So if you create a delegate inside object FOO to call method BAR, and then
execute that delegate, it will behave as is you were calling FOO.BAR directly.
BTW if BAR is a static method, FOO would be the class itself, and not an
instance of the class.
|
|
|
|
|
A delegate declaration defines a reference type that can be used to encapsulate a method with a specific signature. A delegate instance encapsulates a static or an instance method. Delegates are roughly similar to function pointers in C++; however, delegates are type-safe and secure.
Regards,
Satips.
Don't walk in front of me, I may not follow;
Don't walk behind me, I may not lead;
Walk beside me, and just be my friend. - Albert Camus
|
|
|
|
|
You haven't added anything of value. Did you read the other replies that were posted 9 hours before you? Did you happen to see the links to more information than you have provided here? Stop spamming, add value.
only two letters away from being an asset
|
|
|
|
|
Ok so here's the problem....
I have a solution that contains 2 projects one is the executable and the other is a DLL that I wrote that the application uses... the problem is that method I am using from the dll tries to reference a class and/or method from the application but since it isn't referenced I get an error here is the code:
Application code:
AnyMethod.RunMethod("ProcessModules","Menu"); //ProcessModules being a class in the application.
DLL code:
public static void RunMethod(string myClass, string myMethod)
{
Type myType = Type.GetType(myClass);
MethodInfo myMeth = myType.GetMethod(myMethod);
myMeth.Invoke(null,null);
}
Any ideas? I have a feeling this would use some inheritance feature or something but not sure...still very new to C#...There has to be a way the dll can reference a class in my other namespace without having to hard-code the reference right??
|
|
|
|
|
Taicho2k wrote: still very new to C#
Then why are you trying to invoke methods from string class names and method names? That is a semi advanced topic.
Taicho2k wrote: I have a feeling this would use some inheritance feature or something but not sure
It would be better if you understood fundamentals like that before moving on to advanced topics.
|
|
|
|
|
Because I am experimenting with Reflection...If you could offer up any hints that would be much more helpful than trying to dictate what topics I should research...if I was to solve this problem then that would be a step towards the direction of learning and understanding this topic better...
|
|
|
|
|
Taicho2k wrote: Because I am experimenting with Reflection
Then google for it, there are a multitude of examples
Taicho2k wrote: trying to dictate what topics I should research
Sorry didn't get any feeling he was trying to dictate to you, just addressing some valuable points for you. There was no justification for you voting him down. Did it get you any closer to finding an answer?
only two letters away from being an asset
|
|
|
|
|
Taicho2k wrote: If you could offer up any hints
did that
led mike wrote: It would be better if you understood fundamentals like that before moving on to advanced topics.
I can't help you further if you are going to choose to ignore it.
Taicho2k wrote: trying to dictate what topics I should research
You asked for help I didn't, if you don't like what I offered as advice don't respond. As to your criticism of my "free advice", f*** off.
|
|
|
|
|
You're the kind of people that make people shy away from using forums- let us take the following example:
I ask (trusting that someone with your wisdom in this language will help me, offer a hint in the right direction, or give an example):
What is 2+2.
You say:
It would be better if you understood what addition is before moving on to advanced topics.
I can understand that understanding these topics better would help me, that's why I'm here. The method in the code I posted works fine from within the same namespace just when I make it into a DLL and try and use it and the arguments reference a class and method from outside the DLL it doesn't work, so I guess what I need to do is figure out how to make the dll see the class or namespace that is calling the method from within it...if you can help me and offer up anything that is actually considered help it would be much appreciated.
I also understand that I am probably not explaning this very well, but what I am looking for is someone who has run into a similiar problem and what their solution was for it.
|
|
|
|
|
You're the kind of people that think they can learn to run before they learn to walk- let us take the following example:
wait I have an idea that is a more appropriate use of my time....
|
|
|
|
|
Finally something we agree on, next time don't post a response to someone's question unless it's to offer help. These kind of responses devalue the title of MVP.
|
|
|
|
|
Taicho2k wrote: the title of MVP.
When you become one then you can tell me all about it ... until then ...
Taicho2k wrote: unless it's to offer help.
I did offer help, you didn't like it, so what it was free.... so once again.... f*** off loser
|
|
|
|
|
led mike wrote: f*** off loser
Come now we can be better than this.
only two letters away from being an asset
|
|
|
|
|
Mark Nischalke wrote: Come now we can be better than this.
Good statement! (Got my 5)
I don't know if it should be the responsability of a CP MVP which shouldn't let him make this kind of statements.
But for me, vulgaritys and personal abuse have no place in a forum like this!
All the best,
Martin
|
|
|
|
|
Thank you, you are correct vulgaritys and personal abuse have no place in this community no matter who they are from.
only two letters away from being an asset
|
|
|
|
|
Don't tell people who have more experience than you what to do. Period. And while you are at it read the forum guidelines. Message titles should not include words 'urgent' or 'help.'
______________________
stuff + cats = awesome
|
|
|
|
|
Taicho2k wrote: since it isn't referenced I get an error
Standard question #2:
What error message do you get?
Taicho2k wrote: There has to be a way the dll can reference a class in my other namespace without having to hard-code the reference right?
Then you have to load the assembly from the dll.
---
single minded; short sighted; long gone;
|
|
|
|
|
When you say "load the assembly" do you mean like [DllImport]? If so, I am currently trying to use DllImport and it finds the DLL, however, it says it can't find the entry point in the DLL, and I've made the function I'm importing the same name as the method in the DLL so I thought it would find it and it doesn't, so then I tried to specify the entry point by doing
[DllImport("myDll.dll", Entrypoint="myMethod")] public static extern void myMethod()
and it still can't find the "entry point" when I run the method in the code later? Do I have to specify something within the DLL?
Thanks for the help,
Taicho
|
|
|
|
|
Taicho2k wrote: I have a solution that contains 2 projects one is the executable and the other is a DLL that I wrote that the application uses... the problem is that method I am using from the dll tries to reference a class and/or method from the application but since it isn't referenced I get an error here is the code:
Ok, I'm not clear on what you're trying to do, but it sounds like you have a circular reference. You have an executable that uses an assembly and an assembly that tries to use the executable. Correct? The solution lies in breaking the circular reference.
|
|
|
|
|
I am trying to add some key down events to a form. It works great until I add a radiobutton to the form, at which point it focuses on the radiobutton and ignores all the keyboard commands. Any ideas on how to make the keys affect the form instead of the radiobutton?
Thanks,
Matt
|
|
|
|