|
|
Plssssssss read the first message in the forum titled "How to get an answer to your question". Pay attention to item #2
led mike
|
|
|
|
|
|
At least he didn't SHOUT PLEEEEEEEEEAAAAAAAASSSSSSEEEEE
codito ergo sum
|
|
|
|
|
Nor did he demand that the code should be sent to his email urgently...
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
How can I make a sliding form in vb6.0 or .Net 1.1 using VB.Net and C#?
joel.r.paderagao
|
|
|
|
|
joel.paderagao wrote: How can I make a sliding form in vb6.0 or .Net 1.1 using VB.Net and C#?
Try changing the Form.Location property value.
led mike
|
|
|
|
|
Okey Thanks, But What I mean is I want to know the code for that. Tnx
joel.r.paderagao
modified on Thursday, February 14, 2008 7:18 PM
|
|
|
|
|
This forum is only designed to help you solve a problem, it is a not a rent-a-coder forum, especially since we don't get paid. Sometimes people will post a snippet if it helps explain the solution better, but in this case the answer given should be good enought for you to be able to figure the rest out.
The best way to accelerate a Macintosh is at 9.8m/sec² - Marcus Dolengo
|
|
|
|
|
Okey Thanks and God Bless!!!
joel.r.paderagao
|
|
|
|
|
Hi, I'm relatively new to C# (C++/C/Java background) and I'm having a difficult time getting through an interop issue. I'm attempting to call a function located in a native C++ dll, but the following exception is thrown:
"Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
I suspect I am handling the byte * wrong. I have tried several things including marshaling, but all yield the same result. Any help would be greatly appreciated. Here is the relevant information.
C++ declaration (within a dll):
int foo(const BYTE *a, int b)
My C# declaration:
[DllImport("bar.dll", EntryPoint = "foo", CharSet = CharSet.Auto)]
public static extern unsafe int foo(byte* a, int b);
The relevant code:
// taken from a function declared unsafe
int ret;
byte[] buffer;
buff = new byte[20];
// ... fill the buffer with stuff ...
fixed (byte* bPtr = buff)
{
// the following line causes the exception
ret = foo(bPtr, buff.Length);
}
Thanks again,
-J
|
|
|
|
|
I thought that the variable you pointed to had to be fixed, but not the pointer. I think you need to declare buff as,
fixed byte[] buff = new byte[20]; If that doesn't work, then perhaps you should try the following:
IntPtr bytePtr = Marshal.AllocHGlobal(20);
try {
ret = foo((byte*)bytePtr.ToPointer(), 20);
} finally {
Marshal.FreeHGlobal(bytePtr);
} Or perhaps the argument to your method foo is supposed to be 19 in this case instead of 20. Hope one of these suggestions helps,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
protected override void OnMouseUp(MouseEventArgs e)
{
int WM_CONTEXTMENU = 0x7B;
this.Capture = false;
Message msg = Message.Create(this.Handle, WM_CONTEXTMENU, ???, ???);
DefWndProc(ref msg);
}
=========================================
Dear Sir And Madam,
The code above....
I need to show Windows Form Title Bar Context Menu.
Message msg = Message.Create(this.Handle, WM_CONTEXTMENU, ???, ???);
What parameter I should create and pass to Message.Create method.
Sorry for bad English.
Thank You.
|
|
|
|
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DateSelectionforPGE
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
selectDate();
connectSQl();
}
public void connectSQl()
{
SqlConnection conObj = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");
conObj.Open();
}
public void selectDate()
{
//To take the Database Name
string nameDatabase = dateTimePicker1.Value.ToString("MMdd");
string nameDB = "CustList_PGE_" + nameDatabase;
MessageBox.Show("The name of the database will be CustList_PGE_" + nameDatabase);
//To take the Database Table
string nameDatabasetable = dateTimePicker1.Value.ToString("MMddyy");
string nameTable = "CustList_PGE" + nameDatabasetable;
MessageBox.Show("The name of the Database table will be CustList_PGE" + nameDatabasetable);
//Connecting to the Stored Procedure
SqlCommand cmdObj = new SqlCommand();
cmdObj.CommandText = "CreateDataBases";
cmdObj.CommandType = CommandType.StoredProcedure;
cmdObj.Parameters.AddWithValue("@databaseName", nameDB);
cmdObj.ExecuteNonQuery();
}
}
}
|
|
|
|
|
I have a config class that is decorated using attributes from System.Xml.Serialization, so reading of the configuration files is easy. There are dozens of instances of those configuration files, which are loaded on demand specifying the file name to indicate which instance we want.
I want to change this in the following way: instead of the clients of the class instantiating a new instance of XmlSerializer each time, specifying the file name, I want to encapsulate it as a static member instance, created on class initialization. Then, I want to provide a static method, member of the config class, that will take a file name and return the appropriate instance.
Now that you have the context, here is the question: since the XmlSerializer is a static member and more than one thread can call the static method to get an instance at the same time, is the XmlSerializer.Deserialize method thread-safe?
Thank you.
|
|
|
|
|
Hello,
I'm also not sure about this one.
Out of a feeling I would asume it is not.
Therfore I would implement a static Deserialize method ans use a lock[^] statement there.
All the best,
Martin
|
|
|
|
|
There are a few issues with what you posted
Le Centriste wrote: since the XmlSerializer is a static member and more than one thread can call the static method
Double static? What is the point of having a static instance of the XmlSerializer if you have a static method that will be used?
Le Centriste wrote: I want to provide a static method, member of the config class, that will take a file name and return the appropriate instance.
Based on that information alone, since a static method returns a new instance based on the specific input on each invocation there is no concurrency issue requiring synchronization. However I have no idea what else you may be doing.
led mike
|
|
|
|
|
Ok, I should have posted some code:
public MyConfigClass
{
private static XmlSerializer DEF_SERIALIZER = new XmlSerializer(typeof(MyConfigClass));
[XmlElement]
public string SomeConfigValue
{
get { return this._correspondingPrivateMember; }
set { this._correspondingPrivateMember = value; }
}
public static MyConfigClass LoadConfig(Stream file)
{
return (MyConfigClass)MyConfigClass.DEF_SERIALIZER.Deserialize(file);
}
public void SaveConfig(Stream file)
{
MyConfigClass.DEF_SERIALIZER.Serialize(file, this);
}
}
Note that I provide overloads of those methods to accomodate the clients, but you get the idea.
So, since the MyMyConfigClass.LoadConfig method is static, it may be called simultaneously by different threads, on different streams, but all using the same XmlSerializer instance.
|
|
|
|
|
Well I could have figured out your construct from your post but I didn't.
You actually have two things you need to worry about. The instance of XmlSerializer and the Stream.
A rule of thumb is that static methods should be thread safe where instance methods cannot be assumed to be thread safe. Your static method is not since it uses an instance member to perform it's work. You could synchronize access or create a new Serializer instance in the static method. However neither guarantees thread safty of the Stream.
led mike
|
|
|
|
|
led mike wrote: Your static method is not since it uses an instance member to perform it's work
If you talk about the XmlSerializer, it is static, hence is not an instance member.
led mike wrote: You could synchronize access
I think it would be safer that way. A simple lock statement would guarantee thread-safety. This was also suggested by Martin#.
led mike wrote: However neither guarantees thread safty of the Stream.
Good catch. I cannot guarantee that, since 2 thread could pass the same Stream instance.
I need to put in some more thinking. Thanks for your help.
|
|
|
|
|
Le Centriste wrote: If you talk about the XmlSerializer, it is static, hence is not an instance member.
Yes it is, it's a Singleton.[^]
led mike
|
|
|
|
|
This is not a singleton it is just Encapsulation or Information Hiding[^]. There could exist other instances of XmlSerializer, but MyConfigClass uses a predefined one, and avoids creating useless instances. In the singleton pattern, only one instance of a given class can exist at any given time.
Also, the MyConfigClass class does not prevent mulitple instances to exist at the same time.
|
|
|
|
|
You are correct, you did not implement a Singleton. However it is an instance so your assertion that it isn't is still wrong.
led mike
|
|
|
|
|
From your link:
the singleton pattern is a design pattern that is used to restrict instantiation of a class to one object
I don't, in any way, restrict the instantiation of XmlSerializer or MyConfigClass to one object. Other part of the application can instantiate other instances of XmlSerializer. In a Singleton pattern, this is not possible. I just hide the XmlSerializer instance I use to deserialize the object.
Anyway, I just wanted to know if the XmlSerializer.(De)Serialize methods were thread-safe.
|
|
|
|
|
hi everybody,
i can't change the axe X in excel with C# i know with vb serialcollection.XValue= but i need the information for c#
thanks
<br />
public void Excel_Graphic(int Lig, int col)<br />
{<br />
string upperLeftCell = "A3";<br />
int endRowNumber = System.Int32.Parse(upperLeftCell.Substring(1))<br />
+ Lig - 1;<br />
char endColumnLetter = System.Convert.ToChar(<br />
Convert.ToInt32(upperLeftCell[0]) + col - 1);<br />
string upperRightCell = System.String.Format("{0}{1}",<br />
endColumnLetter, System.Int32.Parse(upperLeftCell.Substring(1)));<br />
string lowerRightCell = System.String.Format("{0}{1}",<br />
endColumnLetter, endRowNumber);<br />
<br />
Worksheet ws = (Worksheet)app.ActiveSheet;<br />
<br />
Object Graph1 = new Object(); <br />
<br />
ChartObjects GraphObjs = (ChartObjects)ws.ChartObjects(Type.Missing);<br />
ChartObject GraphtObj = GraphObjs.Add(100, 20, 300, 300);<br />
<br />
Chart xlChart = GraphtObj.Chart;<br />
<br />
Range chartRange = ws.get_Range("A2", lowerRightCell);<br />
Range AxeY = ws.get_Range("A2", "A16");<br />
Range AxeX = ws.get_Range("B2", "B16");<br />
<br />
xlChart.SetSourceData(AxeY, Type.Missing);<br />
xlChart.ChartType = XlChartType.xlXYScatterLines;<br />
xlChart.Location(XlChartLocation.xlLocationAsNewSheet, Graph1);<br />
<br />
}</code> <br />
<br />
<div class="ForumSig">jere</div>
|
|
|
|