|
Is there any software out there that can compare Vb exes with one another?
|
|
|
|
|
Which version of VB and on what level do you want to compare them?
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Thanks for getting back.
It is VB6.
What I want to know if there is any difference between 2 exes. The sort of thing like, if there has been a update, new compilation etc from the original exe.
Hope this helps, thanks again.
|
|
|
|
|
Is there anything for Vb.Net version 2003 as well?
|
|
|
|
|
Nothing that will compare two .EXE's. You'll have to look at each .EXE and compare them by hand. You can use Lutz Roeder's .NET Reflector[^] to do that.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
VB6? No, there isn't. VB6 compiles directly to a native image format binary. A simple FC compare will tell you that they are different. I'm not aware of any utility that dumps VB specific data out of the .EXE to compare with anything.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
See my test code below (VB .NET 2.0). The Dispatcher is kicking off separate threads of DownloadFileThread which uses the WebClient DownloadFile method to retrieve the files from the web server.
If I watch “c:\test” and keep hitting F5, I see that only two files are ever downloading at the same time. Based on extensive Google searches, I have tried the following, but I still only get 2 downloads at a time:
1. Set "MaxConnectionsPer1_0Server" and "MaxConnectionsPerServer" registry settings to greater than 2
2. Used HttpWebRequest instead of DownloadFile, setting “ServicePoint.ConnectionLimit” to greater than 2
3. Tried upping the “ServicePointManager.DefaultConnectionLimit” to greater than 2
Any help would be greatly appreciated!!
Public Sub Dispatcher()
Const MaxThreads As Integer = 3
Dim DownloadList As New Queue
DownloadList.Enqueue("http://localhost/gdsupdate/bigfile1.cab")
DownloadList.Enqueue("http://localhost/gdsupdate/bigfile2.cab")
DownloadList.Enqueue("http://localhost/gdsupdate/bigfile3.cab")
Dim ThreadList As New Collection
Dim stillWorking As Boolean
Dim CheckingThread As Threading.Thread
Do
'Check to see if it is still running
stillWorking = False
'Loop through the threads to remove those that are finished
For ThreadIdx As Integer = ThreadList.Count To 1 Step -1
CheckingThread = ThreadList.Item(ThreadIdx)
If CheckingThread.ThreadState = Threading.ThreadState.Aborted Or _
CheckingThread.ThreadState = Threading.ThreadState.Stopped Then
ThreadList.Remove(ThreadIdx)
Else
stillWorking = True
End If
Next
'Add more items to the threads if there is room and more to process
For ThreadIdx As Integer = (ThreadList.Count + 1) To MaxThreads
If DownloadList.Count = 0 Then Exit For
CheckingThread = New Threading.Thread(AddressOf DownloadFileThread)
ThreadList.Add(CheckingThread)
CheckingThread.Start(DownloadList.Dequeue)
stillWorking = True
Next
'Continue looping until all are completed
Loop While stillWorking
End Sub
'Thread must be a sub with 1 object as param (type must be object), or no param
Friend Sub DownloadFileThread(ByVal InputFile As Object)
Dim SourceURL As String = InputFile
Dim FileName As String = System.IO.Path.GetFileName(SourceURL)
Dim ToTarget As String = System.IO.Path.Combine("c:\test", FileName)
Dim theWeb As New System.Net.WebClient
theWeb.DownloadFile(SourceURL, ToTarget)
End Sub
|
|
|
|
|
Hi
I have installed a windows service successfully and it runs ok. When I attach to the process in order to debug it, and try setting breakpoints, I get the following message:
"The breakpoint will not currently be hit. No symbols have been loaded for this document"
Has anyone come across this before (and found a solution )?
Thanks
KevinSheedy
|
|
|
|
|
|
I have some source code written in c# but as I am a VB.NET programmer I need a little guidance in the translation.
Firstly would the following C# code snippet...
[Serializable]<br />
public class Employee
translaste to VB.NET as...
<Serializable> Public Class Employee()
Secondly
How would this translate from C# to VB.NET?
public class EmployeeCollection : ArrayList
Thanks
Steve Jowett
|
|
|
|
|
Just use this link
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
for converting C# code to VB.net code
Balasaheb
Software Developer
Platform: Asp.net,vb.net
Database: SQL Server 2000
|
|
|
|
|
Wow, that is one excellent and extremely ussful website. Thanks for the referal, it's now in my favorites
Steve Jowett
|
|
|
|
|
For those reading this thread, the translation is:
Public Class EmployeeCollection
Inherits ArrayList
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
hi,
im trying to parse some specific information from a VB6 app to a VB.Net app.
Currently im using the API function SendMessage with the WM_COPYDATA message to try to transfer a object containing my specific information.
Currently im able to catch the message in my VB.Net app, but im not able to extract the information.
In both applications i have defined a type to hold the specific information, defined like so:
VB6:
Public Type sagdata
sagid As String
End Type
VB.Net:
<StructLayout(LayoutKind.Sequential)> _
Public Class SagData
Public sagid As String
End Class
The Declaration and sending of message in VB6:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private sub blabla
Dim sagdat As sagdata
sagdat.sagid = "qwerty"
Call SendMessage(hwndTarget, WM_COPYDATA, 0, sagdat)
end sub
VB.Net code that gets the information from the message:
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
.
.
.
Dim ExData As SagData
ExData = CType(m.GetLParam(GetType(SagData)), SagData)
dim message as string = Marshal.PtrToStringAuto(cds.sagid, cds.sagid)
.
.
the second last line where i try to assign ExData is where i'm stuck at now.
I get an exception that reads:
The runtime has encountered a fatal error. The address of the error was at 0x7a0baa07, on thread 0x3c4. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack.
Im pretty sure that either my data type difinition in VB.Net is lacking something, or the way im trying to extract from the message is totally wrong.
Any tips are welcome.
-- modified at 10:11 Thursday 24th August, 2006
|
|
|
|
|
You can find out more about the technique here[^].
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi Dave,
I had actually already looked at this, but i was not able to make it work properly.
Also that example seems overly complex, using channels and what not.
My main problem was that i ran into the same problem as i do now, which is when im trying to get the information via the WM_COPYDATA message i get an exception about memory address.
|
|
|
|
|
Ok i can see i had made some mistakes in my code. the structure passed has to be a certain type. I've changed this to
'VB6
Private Type COPYDATASTRUCT
dwData As Long ' ID for this msg
cbData As Long ' number of bytes
lpData As Long ' address of data
End Type
'VB.Net
<System.Runtime.InteropServices.StructLayoutSystem.Runtime.InteropServices.LayoutKind.Sequential)> _
Private Structure COPYDATASTRUCT
Public dwData As IntPtr
Public cbData As Integer
Public lpData As Integer
End Structure
My code when sending the message from VB6 is now:
Dim s As String
s = "hello"
Dim cds As COPYDATASTRUCT
cds.dwData = 1
cds.cbData = LenB(s)
cds.lpData = StrPtr(s)
Call SendMessage(hwndTarget, WM_COPYDATA, 0, cds)
and my code when handling the message in .NET is still abit uncertain
i can get some of the string but i also get some garbage along with it.
Dim cds As COPYDATASTRUCT = New COPYDATASTRUCT()
cds = Marshal.PtrToStructure(m.LParam, cds.GetType())
Dim s As String = Marshal.PtrToStringUni(cds.lpData, cds.cbData)
when running this code s becomes:
"hello聎鏆矔鎅矔"
anyone know why?
-- modified at 4:47 Monday 28th August, 2006
|
|
|
|
|
hmmm
If i divide the value
cds.cbData
by 2, i get the string i want each time.
I dont know why exactly, and would really love an explanation.
|
|
|
|
|
VB6 stores all of it's strings in Unicode format (2 bytes per char), otherwise known as BSTR. When the string is marshalled to Managed Code, it's converted to a normal single byte format.
Dave Kreskowiak
Microsoft MVP - Visual Basic
|
|
|
|
|
Hi,
I have a pretty advanced search page with a datagrid under all kinds of search criterias...
Now I was thinking of putting each section of the search criterias in tree nodes; making a tree with only one level, so that users can hide/show panels and the grid itself by clicking a + to expand and - to hide (a panel)
So it would be something like:
+ filters
+ text search
+ advanced search
+ select fields to show
- [grid]
...
...
Now I don't know if it's even possible to put so large parts of html code in tree nodes...
So I'm asking here if anyone has a better idea? Or if it's even possible?
Please give your opinion.. (or tips on how to make such a tree)
-- modified at 9:10 Thursday 24th August, 2006
|
|
|
|
|
Anyone?
|
|
|
|
|
Can anyone tell me the syntax for displaying a image in the rich text box with some text.
i am using vb.net 2003 windows application
Thanks
Manish
|
|
|
|
|
hello!!
when i drag the crystalreport viewer in my vb.net application it gets the following error
the.net aseembly "crystalDecisions.windows.form" could not be found
how can i resolve this problem????
|
|
|
|
|
Hello everyone.. how do you launch a MSWORD document in VB.NET, by code? Like if i want to open VB.doc. When I use the shell command, and then specify its path.. it will juz say 'File Not Found!'. It only launches executables.. I can't actually open the MSWORD file..
Can anyone help me out with this? Thanks in advance..
|
|
|
|
|
Process.Start(pathToDocFile)
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|