|
The .DLL has to be in the same folder as your .EXE or in a folder on the PATH environment variable.
Chances are, it's not in either. You can add the .DLL to your project and, in the Properties window under "Copy to Output Directory", make sure it says "Copy Always" so the .DLL ends up in your project Debug or Release folder with your .EXE.
|
|
|
|
|
Tested with Lazarus;
library project1;
uses
Classes;
procedure DoHelloWorld(var Source: string) stdcall; export;
begin
Source := 'Hello world :)';
end;
exports DoHelloWorld;
begin
end.
Imports System.Runtime.InteropServices
Imports System.Text
Module Module1
<DllImport("project1.dll", EntryPoint:="DoHelloWorld", CallingConvention:=CallingConvention.StdCall, CharSet:=CharSet.Ansi)> _
Public Sub DoHelloWorld(ByRef Source As StringBuilder)
End Sub
Sub Main()
Dim sb As New StringBuilder()
DoHelloWorld(sb)
Console.WriteLine(sb.ToString())
Console.ReadKey()
End Sub
End Module
Bastard Programmer from Hell
|
|
|
|
|
I have requirement where user can pass all types of datetime formats. Also I need to validate all the datetime formats entered by user.
DateTime.TryParse() returns false, if the date passed is in dd/MM/yyyy format. I have noticed in all the forums this issue is been noted.
Can anyone reply why this error is been thrown and whats the solution so as to pass all datetime formats
|
|
|
|
|
I am unable to replicate the issue at my end.
The sample code I used to test it (form contains a textbox for input, a button with the test code below, and a label to display the result):
DateTime getDate;
bool valid = DateTime.TryParse(textBox1.Text, System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces, out getDate);
if (valid)
label1.Text = getDate.ToLongDateString();
else
label1.Text = "Not a valid date";
I can enter various formats, using either a number for the month or the short-hand notation or the long notation and it all works fine.
Could you tell me exactly what input doesn't work properly, for instance when you try this code?
|
|
|
|
|
schampacc wrote: I have requirement where user can pass all types of datetime formats.
Forget about the code for a moment and think about this.
What is meant by
1) 04/05/2011
2) 05/04/2011
Both could mean either 4 May 2011 or 5 April 2011 and it's likely that even the Startrek Universal Translator cannot solve this fundamental problem.
Alan.
|
|
|
|
|
It returns true for 05/04/2011 but returns false for 25/04/2011
|
|
|
|
|
And does it return true for both 04/05/2011 and 04/25/2011?
How the date/time is interpreted depends on the locale used. This is good, cf. Star Trek Universal Translator in previous post.
|
|
|
|
|
yes it returns true for both the cases, since both will be considered as MM/dd/yyyy
|
|
|
|
|
schampacc wrote:
It returns true for 05/04/2011 but returns false
for 25/04/2011
With that information I can deduce that your system's Culture uses MM/dd/yyyy format and it shouldn't be a surprise that TryParse rejects a month number of 25.
When the day number is less than 13 it is not possible to understand a date without prior knowledge of the Culture. Therefore I can guess that "25/04/2011" is 25 April 2011 but I can't say whether "05/04/2011" is 5 April or 4 May unless I know the field order within the string.
Alan.
|
|
|
|
|
schampacc wrote: pass all types of datetime formats
That isn't possible.
Different cultures expect different forms of dates and those forms are not deterministically unique without additional information.
So either you must limit the possible forms or you must provide a way for the user (or user app) to tell you what form is expected.
There is no other possibility.
|
|
|
|
|
Hi All,
I have found the solution to support all datetime formats.
First I need to inform is that datetime objects uses the system culture by default.
But we have a solution for this. You can loop in all the cultures available and check if the passed datetime is in valid format or not by using the below code.
DateTimeStyles styles = DateTimeStyles.None;
DateTime startDate;
foreach (CultureInfo cInfo in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
DateTime.TryParse("stringDate", cInfo, styles, out startDate)
}
|
|
|
|
|
Will you still not have problems when the day number is less than 13? 04/05/11 and 05/04/11 will probably be ok with several cultures?
//daniel
modified on Tuesday, September 13, 2011 5:06 AM
|
|
|
|
|
Thats right. Then in this case one should go for one particular format only.
The issue was to validate the date is in valid dateformat or not. It can be in any valid dateformat.
This issue can be solved using the above loop.
|
|
|
|
|
schampacc wrote: Then in this case one should go for one particular format only.
And your test still doesn't hold up. Take a look at 4/20/2011. Is that a valid date of the form April 20th or an invalid date when someone tried to enter the 4th day of the 20th month?
|
|
|
|
|
This is not the way to solve this - in fact, it's an incredibly naive solution. As an example, 9/11/2001 - what happened on that day? It was either a terrible disaster in America or a very quiet day in November. You should use the universal datetime format in your application, which is agnostic of ALL cultures.
|
|
|
|
|
Do you mean to define the datetime object as DateTime.UTC?
|
|
|
|
|
I mean that the date should conform to ISO 8601.
|
|
|
|
|
Pete O'Hanlon wrote: conform to ISO 8601
Hear hear!
I'm glad I didn't have to say it this time.
|
|
|
|
|
|
schampacc wrote: I have found the solution to support all datetime formats.
No you haven't.
I said it was impossible - which it is.
There is no solution. So whatever you are doing is certainly not a solution.
What you are probably doing is testing within a LIMITED cultural scope. Which might be what you need to do but isn't what you asked. And if it isn't what you need to do then your solution will fail.
|
|
|
|
|
Hi all,
I have installed VS 2008 on my system and now i want to use VSS (Visual Source Safe).
Can any one tell me how can i download VSS and intall on it.
Please can anyone guide me i am new to VSS.
Thanks in advance.
|
|
|
|
|
See the first answer here[^].
|
|
|
|
|
Why would you torture yourself so?
Move to a modern and real source control system.
If your actions inspire others to dream more, learn more, do more and become more, you are a leader." - John Quincy Adams You must accept one of two basic premises: Either we are alone in the universe, or we are not alone in the universe. And either way, the implications are staggering” - Wernher von Braun
|
|
|
|
|
ahmed zahmed wrote: modern and real source control system
That's an oxymoron; the only real source control system (OpenVMS' CMS) isn't exactly modern.
|
|
|
|
|
i need project source code...
In my project i going to use AES encryption and decryption algorithms in c language and i give input for that program in text box at form window in vb.net and the input is execute with the c program and produce the output in another form window of vb.net
|
|
|
|