|
Thanks for posting the resolution.
Happiness will never come to those who fail to appreciate what they already have. -Anon
|
|
|
|
|
Howdie.
Has anyone encountered vb.Net reversing your edits to a project?
I just spent two days looking for a problem that took me so long to figure out because I had previously made some edits that I know were fixed, so I did not go back there until it was obvious the problem was there....Again! I had about 5 win32 functions that I needed to change from Private to Public, and a few ByRef that needed to be switched to ByVal. I was testing the program fine for a few days WITH THOSE FIXES ALREADY MADE, when all of a sudden I was getting odd errors that were hard to nail down":
"Cannot evaluate expression because the code of the current method is optimized."
and
"Exception of type 'System.ExecutionEngineException' was thrown."
The first error was difficult to nail down because it was silent and GetLastError() just returned 0 (function executed successfully), and the last error gives no indication of the problem source. Fortunately the last error went away with the solution to the first.
Basically what vb.Net did was change two of my Public back to Private, and switched one ByVal back to ByRef.
Very strange.
|
|
|
|
|
This may not be VB's fault at all, there are a couple things that could be going on...
First, if you had to do a disk repair or roll back (restore from an older version of the disk) then some disk changes may have been rolled back to old values. These roll backs can happen when you install software almost silently so its important to watch if the installer says "creating restore point".
Second, maybe you had the project open in two instances of visual studio, edited it in one, saved it, then in the other it usually says "the file changed would you like to reload" or something like that. If you don't read it quick then dismiss the dialog, make a change there and save it, it will overwrite your changes from the other instance.
Another thing is that you could have been editing the file in a sand box. Sometimes your anti-virus software incorrectly sandboxes some programs, you can make all the changes you want, compile, run, everything looks great until you exit the program and your changes aren't saved to disk. This is especially annoying and difficult to find, make sure that your antivirus hasn't sandboxed your Visual Studio instance.
Other than that, I really can't think of any reason that visual studio would "roll back" changes to your files, especially after saving them to disk.
|
|
|
|
|
Thanks for your reply, Ron.
There were no rollbacks, multiple instances open, or sandboxes running. But I have heard from somewhere along the line that some people have had a problem with making changes, and running it in the IDE and it behaving as if no changes had been made. I guess it boiled down to something involving the latest build vs. a cached build. One guy reported that even if he exited vb and came back in, the problem was still there, until he rebooted, and everything was OK. I could not reboot only because I am running a 3D rendering that must keep going.
My problem is different than those, but was wondering if they aren't related in some way.
|
|
|
|
|
Quote: But I have heard from somewhere along the line that some people have had a problem with making changes, and running it in the IDE and it behaving as if no changes had been made. That can happen when the source file somehow becomes post-dated in regards to your computer's time. Shutdown VS, fix the file date-time, delete the bin and obj folder contents.
How can this happen? Work on a project with someone on the other side of the world by exchanging files is how.
|
|
|
|
|
NOW I KNOW WHY THAT HAPPENS! Often, I will try to finish up a project development date-version by 12:00 midnight. I do that so that my dated project folders show up consecutively in Windows Explorer. I also put the date stamp in the project name, in case I wrote the date incorrectly and it does not match up with the Windows date stamp, or if I archive a folder much later than I should have (since Windows does not preserve the original modification date of the folder when it is copied). Just an extra layer of info to help keep things organized. But if I forget to close out by 12:00am and catch it within maybe half an hour, I will set my clock back to just before midnight of the previous day, save out, then copy that project folder over to a new one with a new date stamp in the title.
|
|
|
|
|
treddie wrote: Basically what vb.Net did was change two of my Public back to Private, and switched one ByVal back to ByRef.
Very strange. I'd rather call that "unlikely" than "strange". What reason would it have to do so?
Edit it again, and have it write it's version (or anything else you'd wanna use to discriminate between your current code, and the previous) to a file, or, better yet, using OutputDebugString. Weird, spooky stuff like this can happen if part of the code is outdated, which can happen through a multitude of ways.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
I'll google "outdated code" and see what comes up. Another issue that might be related is for some reason a form will fail to refresh due to controls being "missing" when they were in fact always there. I find it odd that vb can lose track of controls on a form without me having made any edits that directly affect a control.
|
|
|
|
|
treddie wrote: I'll google "outdated code" and see what comes up. Ah, sarcasm, the most honest forms of poetry; Google for ..
Here[^]'s the link. In short, your app might pick another assembly than you expect it to, depending on the location of the assembly, it's version and some other stuff.
treddie wrote: Another issue that might be related is for some reason a form will fail to refresh due to controls being "missing" when they were in fact always there. I find it odd that vb can lose track of controls on a form without me having made any edits that directly affect a control. It didn't, otherwise it could not claim it to be missing. It knows what control is expected, but the complaint mentions that it did not find physical code there. Or anywhere else in it's search-path. Often, it's because it's either too picky (compiled against a specific version) or not picky enough (using an older version of the assembly that's higher in the searchpath).
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Heheh...No sarcasm intended. I don't expect people to feed me on a silver platter, so I was going to go search for it on my own.
I read the article, and that seems pretty messed up. I mean, If I'm writing a program, and I have my code sitting there, it should be the only code referenced. After all, I just spent the time to edit it...I expect it to be current without some shady things going on in the background.
As an update, I forgot to mention that the form was not refreshing IN THE IDE. I'm sure you've run into that, where you click on, say, the Form1.vb [design] tab, and instead of the form popping up with all its controls, you instead get an error screen telling you something bad happened and the form can't be displayed.
|
|
|
|
|
treddie wrote: I read the article, and that seems pretty messed up. It is
treddie wrote: As an update, I forgot to mention that the form was not refreshing IN THE IDE. The runtime still has to resolve the assembly, giving the same problems.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Ahhh, but of course. Unless the compiler has a magical fix.
|
|
|
|
|
No insult intended, but never underestimate the frustration caused by pilot error when using Undo.
|
|
|
|
|
No insult taken. You may be exactly dead on correct, there, in my case!
|
|
|
|
|
Hello,
using VB.Net and TAPI 3.x I created a little application to make and recieve calls. This application uses an ordinary telephone which is connected via USB to the computer.
Most functions seem to work fine, but there are some problems which I can't solve:
- If you take the telephone receiver off the phone and then make a call via my computer application Visual Basic reports an unknown error with the code 0x80040052.
- My application don't recognizes phone events and digit events!
It would be great if someone could help me. I studied nearly everything you can find about TAPI in the internet, nevertheless I don't know how to solve these problems.
Yours faithfully,
Steven
|
|
|
|
|
Hi everyone,
i am trying to write a simple code that reads a bitmap image, i.e ("c:\test.bmp"), then i would like to read every pixel and make a check if the pixel is wether a white or black pixel , to finally counting the number of black pixels in the image:
my code was like this :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim tst As New Bitmap("c:\tst.bmp")
PictureBox1.Image = tst
Dim x, y, bcnt As Integer
Dim c As Color = tst.GetPixel(x, y)
bcnt = 0
For y = 0 To tst.Height - 1
For x = 0 To tst.Width - 1
If tst.GetPixel(x, y) = Color.Black Then
bcnt = bcnt + 1
End If
Next
Next
MsgBox(bcnt)
End Sub
|
|
|
|
|
I'm not seeing a question in there.
You might want to search the articles for "Image processing for dummies". You'll find articles on how to go through the image data a LOT faster than GetPixel will.
|
|
|
|
|
thank u Dave, but i did not find any thing in articles. but i will do search on the internet about " LOT " function and how to use it.
any help will be appreciated.
thank u in advance.
|
|
|
|
|
sharief hussien VB wrote: but i did not find any thing in articles
I really have no idea what your question is. You never said what the problem is at all, so I'm guessing.
sharief hussien VB wrote: but i will do search on the internet about " LOT " function and how to use
it.
Read what I wrote again. There is no LOT function. I said the technique in those articles would be a lot FASTER than GetPixel.
|
|
|
|
|
sorry dave for my mysterious question, Lol
i would like to create a simple windows application that reads a bitmap image then counts the black pixels within the image, and finally print it out in a message.
i wrote the following code :
*****************************************
dim img as new bitmap ("c:\test.bmp")
dim x,y,count as integer
count = 0
for y = 0 to img.height-1
for x = 0 to img.width-1
if img.getpixel(x,y)= color.black then
count += 1
end if
next
next
mesgbox(count)
****************************************
the problem is that , the count is always 0.
why , ? i do not know?
is there any wrong with the code?
|
|
|
|
|
First, break out the GetPixel call into it's own line so you can see the value in the debugger:
Dim pixelColor As Color = img.GetPixel(x,y)
If pixelColor = color.Black Then
...
Step through the code line-by-line and look at the value of pixelColor Chances are good that the "black" you're seeing in the image is not really Color.Black, but close to it. Are you using a scanned or video image or was this text.bmp drawn in MSPaint or something else?
|
|
|
|
|
Hi frnds, Is there any codings to filter the data from the Excel Sheet using Visual Basic?
I need codings pls send it as soon as possible..
|
|
|
|
|
|
Hi.
I'm not sure whether or not this thread should go here or over in the API section, except that it involves declarations that are definitely vb.Net.
Anyway, my questions revolve around the use of IntPtr. My first thought was that since I needed to pass pointers to win32 functions, I needed to restrict myself to 32bit values. Therefore, it seems that IntPtr is only applicable when on a 32bit system. If a pointer is declared as IntPtr on a 64bit system, vb.Net is clever enough to make IntPtr fit the 64bitwidth of the current system. That makes it unusable for win32 functions because they can only deal with 32bit values. So then I thought, well, I'll switch to using UInt32, so that the API is accessible with a 32bit pointer. But then I thought, hm, that would be fine as far as the API function is concerned, but would create a problem when an API function returns a 32bit encoded address to a memory location on a 64bit system! So that seems to suggest that when you get the pointer out of the function, that it needs to be widened to a 64bit pointer so that the data there can be properly found and retrieved. So my questions are:
1. Is this logic basically correct?
2. Is IntPtr really nothing more than UInt32 or UInt64,
depending on the bitwidth of the system?
3. Again, if all of this is correct, is casting or
marshaling required to narrow and widen the pointer
when a conversion is necessary?
modified 8-Jun-13 23:14pm.
|
|
|
|
|
The IntPtr type will be 32 or 64 bits wide, as necessary, based on the target platform specified in the compiler options.
Use the best guess
|
|
|
|
|