|
No can you give some examples.but i tried with unsafe code,how shall i return the character pointer as result.
thanks
preky
|
|
|
|
|
Does
[DllImport("dll.dll")]
IntPtr functionname (char* string);
work? You then would have to do Marshal.PtrToStringAuto to convert the IntPtr into something usable in the managed world.
Hope this helps.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
1>Code:
[DllImport("dll.dll")]
static extern int addition(int a,int b);
static extern IntPtr functionname(char* string);
Error: Pointers may only be used in an unsafe context
To overcome the above error i tried the below code but it shows the following exception.
2>Code:
unsafe static extern IntPtr functionname(char* string);
Exception:
An unhandled exception of type 'System.TypeLoadException' occurred in Unknown Module.
Additional information: Could not load type CallingCdll.Form1 from assembly CallingCdll, Version=1.0.2055.18156, Culture=neutral, PublicKeyToken=null because the method functionname has no RVA.
Thanks
preky
|
|
|
|
|
Oh, I didn't see the second char*, I *think* you can safely replace it with the string class, as in
static extern IntPtr functionname(string str);
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
>>Code:
[DllImport("dll.dll")]
static extern int addition(int a,int b);
static extern IntPtr functionname(string value);
string s="codeprojectiscool";
string output;
int a = addition(3,4);
IntPtr normal;
normal=functionname(s);
output=Marshal.PtrToStringAuto(normal);
MessageBox.Show(a.ToString());
MessageBox.Show(output);
>>Error:
Method, operator, or accessor 'CallingCdll.Form1.functionname(string)' is marked external and has no attributes on it. Consider adding a DllImport attribute to specify the external implementation
>>Exception:
An unhandled exception of type 'System.TypeLoadException' occurred in Unknown Module.
Additional information: Could not load type CallingCdll.Form1 from assembly CallingCdll, Version=1.0.2055.21004, Culture=neutral, PublicKeyToken=null because the method functionname has no RVA.
Thanks
Preky
|
|
|
|
|
You need to attach the DllImport attribute to the second extern function too.
Regards
Senthil
_____________________________
My Blog | My Articles | WinMacro
|
|
|
|
|
Thanks Mr.Senthil,now it works fine but it doesn't returns the correct output value.
>>Code:
[DllImport("dll.dll")]
static extern int addition(int a,int b);
[DllImport("dll.dll")]
static extern IntPtr functionname(string value);
string s="codeprojectiscool";
string output;
int a = addition(3,4);
IntPtr normal;
normal=functionname(s);
output=Marshal.PtrToStringAuto(normal);
MessageBox.Show(a.ToString());
MessageBox.Show(output);
>>Input:
s="codeprojectiscool" //Initialized at design time itself
>>Output:
normal="123469904"
output="佃䕄剐䩏䍅䥔䍓住L﷽﷽" //error not correct output
but i should get the output="codeprojectiscool"
Thanks
Preky
|
|
|
|
|
hi everybody,
i have a class wich, i try to serialize. in this class i have a string value wich, i want to serialize in a CData section.
Code:
[XmlRootAttribute("result", Namespace="uri:Praxis-edv.de/XML/ResponseSchema.xsd")]<br />
public class GenericResultObject : IGenericResult<br />
{<br />
...<br />
<br />
[XmlAttribute("CommandName", Namespace="uri:Praxis-edv.de/XML/ResponseSchema.xsd", Form = XmlSchemaForm.Qualified)]<br />
public string CommandName<br />
{<br />
...<br />
}<br />
[XmlAttribute("State", Namespace="uri:Praxis-edv.de/XML/ResponseSchema.xsd", Form = XmlSchemaForm.Qualified)]<br />
public GenericResultState State<br />
{<br />
...<br />
}<br />
[XmlAttribute("Type", Namespace="uri:Praxis-edv.de/XML/ResponseSchema.xsd", Form = XmlSchemaForm.Qualified)]<br />
public string TextType<br />
{<br />
...<br />
} <br />
[XmlText(typeof(string))]<br />
public string TextResult<br />
{<br />
...<br />
}<br />
[XmlIgnore]<br />
public System.Type Type<br />
{<br />
...<br />
}<br />
[XmlIgnore]<br />
public object Result<br />
{<br />
...<br />
}<br />
public string ToXml()<br />
{<br />
...<br />
}<br />
public static GenericResultObject GetFromXml(string Xml)<br />
{<br />
...<br />
}<br />
}
Has anybody an idea how i can serialize the value TextResult in a CData section??
thank you.
|
|
|
|
|
Use [XmlCDataSection] attribute instead of XmlText and there you go.
Public Shared Function SerializeObjectToXML(ByVal input As Object, ByVal type As System.Type) As String
Dim returnXML As String = String.Empty
Dim serializer As New XmlSerializer(type)
Dim writer As New StringWriter
Try
serializer.Serialize(New XmlTextWriter(writer), input)
returnXML = writer.ToString()
Catch ex As Exception
Debug.WriteLine(ex.Message)
Finally
writer.Close()
End Try
Return returnXML
End Function
Live Life King Size
Alomgir Miah
|
|
|
|
|
thanks for your answer, but it dosn't work. If i use [XmlCDataSection] i get the errormessage "The type or namespace 'XmlCDataSection' could not be found." I guess i forgot to say, that i programming in C#.
In C# there is no XmlCDataSection object in the 'System.Xml.Serialization' namespace.
Do you have any other idea how i can get this serialized?
|
|
|
|
|
Its under System.Xml
Live Life King Size
Alomgir Miah
|
|
|
|
|
hi
im makming an asp.net web appliucation using c# and sql server 2000 at back end.
when a user completes a registration form of my application, i want to snd him an email ,confirming that he has been registered and his data has been entered into the database.
now can anyone please tell me how to generate email and send it to the email address as entered by the user.
thanx!
|
|
|
|
|
Using System.Web.Mail;
.
.
.
MailMessage myMessage = new MailMessage();
myMessage.From="validfromaddress@mydomain.com";
myMessage.Subject="You have been registered!";
myMessage.To="validtoaddress@hisdomain.com";
myMessage.Body="You have been successfully registered in our system";
SmtpMail.SmtpServer="ValidSmtpMailServer";
SmtpMail.Send(myMessage);
Darryl Borden
Principal IT Analyst
dborden@eprod.com
|
|
|
|
|
Hello,
I am trying to override the ProcessCmdKey method, and I want on Enter key,
SendKeys.Send ( )
to send back the NewLine key, or something that will allow the cursor to jump to the new line in the richTextBox. What should I put within the brackets?
Thank you.
|
|
|
|
|
anyone know anything about DICOM? (The Digital Imaging and Communications in Medicine) Standard
I'm trying to research ways to program using this... my hope is to beable to emerge in the medical field and beable to use this as my basis.
problem is, i can't find anything on it explaining how to use it...
any help would be great!
|
|
|
|
|
hi,
Im trying to call a java function by creating an object of my class in C sharp code but, it throws an error of reference can anybody help me on this.
|
|
|
|
|
How convert from "ushort a" to "short b" when a>32768
|
|
|
|
|
You can just cast it, "short b = (short)a;", but it may not be what you want.
--
Joel Lucsy
|
|
|
|
|
It dosn't work. Throw excaption
|
|
|
|
|
Don't use shorts - use ints
Darryl Borden
Principal IT Analyst
dborden@eprod.com
|
|
|
|
|
It's idea. Thanks Darryl Borden
|
|
|
|
|
Why dosn't compile this "short[] arrOfShort= new short[]{0xFE00,0xE080}"?
|
|
|
|
|
A short is 16 bits signed. This means it goes from -32,768 to 32,767. Use ushort instead.
--
Joel Lucsy
|
|
|
|
|
I can't. I must know sign
|
|
|
|
|
are you intending to use the values in your code sample as negatives? IF so you might need to rewrite them with the sign explicitly. If they're supposed to be postive values you'll need to use an int since short ranges from -0x8000 to +0x7FFF (negative values are encoded in the upper half of the 0-FFFF range).
|
|
|
|