|
Use == for comparision:
if (this.ColorGrade =="31-1" || this.ColorGrade=="31-2" || this.ColorGrade=="31-3")
this.QGrd='F';
As you can se you dont ha to include { and } when the if-line is followed by one statement only.
|
|
|
|
|
Viktor Nilsson wrote: As you can se you dont ha to include { and } when the if-line is followed by one statement only.
You're correct. Now, what does it have to do with the question that was asked?
only two letters away from being an asset
|
|
|
|
|
It is the
"if isn't needed then drop it"
school.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Viktor Nilsson wrote: As you can se you dont ha to include { and } when the if-line is followed by one statement only.
That is a matter of programming style. For readability, I always include the brackets:
if (this.ColorGrade == "31-1" || this.ColorGrade == "31-2" || this.ColorGrade == "31-3") {
this.QGrd='F';
}
Experience is the sum of all the mistakes you have done.
|
|
|
|
|
Guffa wrote: For readability, I always include the brackets:
Ditto me. Mind you, I hate the use of this.ColorGrade in the test. I'm not that enamoured of using this. . Note - I know this wasn't your code, so I'm not having a go here, merely stating my dislike.
|
|
|
|
|
bring back hungarian notation!!!
|
|
|
|
|
I'd never been a fan till i worked on a a java project recently where this. and super. had been used religiously throughout the project. After a while i started to quite like being able to instantly know where in the inheritance heirarchy something had come from.
Saying that I still leave them out in my own projects, just too lazy i suppose.
Russell
|
|
|
|
|
Jugnu wrote: if (this.ColorGrade ="31-1" || this.ColorGrade="31-2" || this.ColorGrade="31-3")
{this.QGrd='F';}
|| is a boolean condition, which means that it is expecting boolean tests around it. So, you need a boolean condition. Now in this if statement, the boolean condition is going to be == rather than = because = is an assignment statement and not a boolean condition. I hope that's clear enough.
|
|
|
|
|
I've written a plug-in to work with a 3rd party app.
The code has to be installed to 3rdPartyPath\Plugins so I need to override the install path choice for the user. I can delete the page where the user gets to choose an install path but I can't work out how to tell the app to install to my custom location. I seem to be able to call out to my own dlls which should be able to tell me where to install but i can't work out how to do anything with the return value.
Does anyone know how to do this?
Cheers,
Russell
|
|
|
|
|
I would say look into this[^] MSDN site. This website was discovered by looking through links on this[^] message thread. Hope these help,
Sounds like somebody's got a case of the Mondays
-Jeff
|
|
|
|
|
Hey guys, ive ran into a little problem here.. im interfacing with an unmanaged c++ dll in my c# application.
the dll structure is as follows:
APIENTRY ReadImage(
hInstance hObject,
unsigned char* pData,
unsigned long dataSize);
with pData being the top address of the image reading buffer allocated by the calling application.
how would i declare a variable in c#, allocate a specific ammount of memory to it, then return the
memory address of said variable. this is got me stumped :/
|
|
|
|
|
Take a look at System.Runtime.InteropServices.Marshal and associated information
|
|
|
|
|
Thanks for the info mike, i took a look at the class but i still have no idea how to pass the memory address as a parameter to the dll.
|
|
|
|
|
|
Off the top of my head, I would expect you to pass in a StringBuilder object as pData.
|
|
|
|
|
Pete O'Hanlon wrote: I would expect you to pass in a StringBuilder object as pData.
Given the name of the function is ReadImage I assumed it would not be text data and therefore StringBuilder would not work?
|
|
|
|
|
Hi,
assuming the native function expects to get a buffer of sufficient size, this is
how you should do it:
- include a line using System.Runtime.InteropServices; // DllImport
- declare the native function as
[DllImport("myLibrary.dll")]
private extern static int ReadImage(IntPtr hObject, IntPtr pData, ulong dataSize);
- allocate an array of sufficient size (type is byte, uint, whatever you like);
- use class GCHandle methods Alloc (GCHandleType.Pinned) and AddrOfPinnedObject to get
pointer you need (an IntPtr). Pinning prevents the GC to move the array object around
until it gets freed again.
- call the native function as if it were part of your class (the extern static declaration
makes that possible)
- use GCHandle.Free to undo the pinning
|
|
|
|
|
Hi there.
I have an USB Device whick have to small functions.
It should be possible if I write 'GET' to it, it should then return a integer value. And if I write 'RES' it should reset the Integer value.
The Device is connected to my Computer with a USB-Serial cable. I have installed a driver i got with the cable.
I have tried using LibUsbDotNet, but when i tries to open a connection to the device the program just crashes and i cant do anything.
Anyone who can tell how to communicate with my device?
|
|
|
|
|
You said it was connected using a USB Serial cable?? Is the device exposed on a COM port?? Like COM1, COM2, Com3, ... Try talking to it over the serial port instead of going through the headache of using the devices' drivers.
|
|
|
|
|
The device has a serial port, so i have connected it to an USB port using a USB-Serial cable.
|
|
|
|
|
Then the device is more-than-likely exposed on a normal COM port. You can probably get to it using any terminal emulator software that uses serial communication (like HyperTerminal). If so, then you can use the SerialPort class in the .NET Framework 2.0 (System.Io.Ports namespace) to talk to it from your code.
|
|
|
|
|
Ok. Sounds great.. thanks
I will buy a serial cable tomorrow and try it..
|
|
|
|
|
Could this be a possible way to call the GET function on the device?
<br />
SerialPort sp = new SerialPort("COM1");<br />
<br />
sp.Write("GET");<br />
char[] buffer = new char[64];<br />
int ans = sp.Read(buffer, 0, 64);<br />
|
|
|
|
|
In a very, very "quick'n'dirty" implementation, no. You still have to give the SerialPort class constructor the parameters the device is expecting for serial communication, like which COM port (you already have it), baud rate, parity, data bits, and stop bits.
Then you need to Open the port before you try to read/write from it. Then you need to Close the port when you're done.
Read this...[^]
|
|
|
|
|
You just told me you HAD a serial cable and had the device connected to it...??
|
|
|
|