|
This morning I changed the PROJECT properties of a VB6 program I'm doing,
After that, when I try to execute it, it gives me the Error Message Box "Sub Main() doesn't exist...
Only problem is it gives the same error in all the other versions of the program I have, even the older versions which I haven't touched or changed
I got to give the project in today...
PLEASE HELP VERY URGENT...
THANKS
|
|
|
|
|
have you renamed any of the files in the project? chances are you just renamed the default startup object and therefore the project is now looking to start from Sub Main(). Since it doesn't exist it's throwing up the exception.
to fix, just go into the project properties and set the startup object to whatever form you want to be the application's main form.
-jim
|
|
|
|
|
What did you change in the project properties? Did you try making a new test project (like a blank Windows application with just an empty form) and seeing if that works?
Without knowing anything about your project, the only suggestion we can make is to recreate the project, place all the controls again, and copy and paste the code from your previous project into this one.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Thanks,
Now The project if started correctly starts from Globals(MODULES), which tells the first form to start.
It has a Sub_main().
So I tried to start it as
PROJECT TYPE:Active DLL
Startup Object:Sub Main
Now it gives the MsgBox " User-defined type not defined"
The thing is, I didn't change the code...
Just the Project Properties...
And even the old versions are giving me the same error..
I tried creating a New application (a simple button and TExt) and it works.
I would copy and paste everything but the project is to long...
And the bosses here are MAD...
Is there anything else I should try?
|
|
|
|
|
paddy1234567 wrote:
PROJECT TYPE:Active DLL
There's your problem. ActiveX .DLL's don't user a Main . In order for this to work, you'll have to convert the project back to an .EXE. You can't use a Main in any .DLL's.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Dave Kreskowiak wrote:
There's your problem. ActiveX .DLL's don't user a Main. In order for this to work, you'll have to convert the project back to an .EXE. You can't use a Main in any .DLL's.
That is totally and utterly incorrect. A DLL MUST have a public class that can be created by an external user. HOWEVER it can still have a Sub Main. If so, Sub Main defines the entry point to the DLL.
You can have two startup settings for a VB DLL:
None:
The public class Initialize event provides the DLL entry point and this is the first code to run.
Sub Main:
You still have to have a public class to instantiate the dll. However, if you define Sub Main as the start up object, what happens is:
1) Your external client creates an class object in the dll.
2) In response to the request for the class object the dll FIRST executes all the code in Sub Main.
3) The dll then fires the requested class's Initialize event and returns the class object reference to the caller.
Now, what you CANNOT have in a VB DLL is a form as a startup object. Your options are "None" and "Sub Main".
|
|
|
|
|
I have written a MDI in VB.NET which is working fine. I decided to put my own icon on the forms (top left), and this too worked fine on all the children forms.
The problem I have is that the parent form is not called form1 (the default) and as I understand it, when I set the icon the form1.resx file is still applying the icon to a form called form1, when it should be apllying it to whatever I renamed form1 to. This causes an error when I run the program. If I replace the form1.resx and the form1.VB file with backups I took just before I changed the icon, it all works fine (without the icon).
Can anyone tell me (in an idiot proof way!) what I need to change in the resx file to get it to work with the icon?
Thanks a million.
|
|
|
|
|
Are you changing the icon in the icon property within the property grid when in design mode for the form?
If you are I can't see how changing the name of the form will cause any problems... or am i missing your point?
Tom
|
|
|
|
|
Hello there
I am building one database setup wizard in VB.Net . In which on click event I need to create database with tables, Views ,Triggers and procedures.I have the script on one Script file.
So how to run that file from vb code to create database on specified server.
Best Regards
Rizwan Bashir
|
|
|
|
|
Is it any way to do this? I get an IE window containing a msword document and need to access its automation methods.
Help me!
Thanks.
"When I look into your eyes, there´s nothing there to see, nothing but my own mistakes staring back at me"
|
|
|
|
|
I PLANED TO DO MY MAIN PROJECT IN VB.NET. IN VB.NET I WANT TO DO "COMMUNICATION MANAGEMENT PROTOCOL LIBRARY" PROJECT. SO YOU PLEASE SEND THE SOURCE CODE OF "COMMUNICATION MANAGEMENT PROTOCOL LIBRARY" TO MY E-MAIL ADDRESS. MY E-MAIL ADDRESS IS: myjamalmd@hotmail.com
THANK YOU.
jamal
|
|
|
|
|
3) STOP YELLING!
2) N-one knows what your talking about when you say "communication management protocol library"!
1) Write it your damn self! No-one here is going to write it for you or supply it to you. That's not why we're here. We're here to answer questions about programming problems you may have, not be your personal servant for finding stuff on Yahoo[^] or Goggle[^].
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi,
I am creating a usercontrol in VB.NET and calling it by VB.NET application. I would like to generate button click event of button(which is in the form of application which use my UserControl) from UserControl. Can anyone explain me how do I know the which form(name of form) of application is using my usercontrol and how to generate button click event?
I look forward to your replies.
thanks,
atul
|
|
|
|
|
when on the control add this
AddHandler btn.click, AddressOf btn_Click
' Paste this functon
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
msgbox "Button Clicked"
End Sub
Rizwan Bashir
|
|
|
|
|
Hi
I created a usercontrol, and I like to fire o raise an event included in the base class (Usercontrol class).
raiseevent mybase.someevent .....
does not allowed, so, how a can do that??
I try to override the base event with a new "shadows event", like:
public shadow event someevent(.....)
but the:
raiseevent someevent....
Doesn't work!
thank you for your repply
Gabriel
|
|
|
|
|
Hi,
I think this code will fullfill your need.
'--- BEGIN
Private Btn As Button
Private y As Integer = 10, ID As Integer = 1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Btn = New Button()
Btn.Location = New Point(10, y)
Btn.Text = "Button" & ID.ToString
AddHandler Btn.Click, AddressOf Hai_Click
Me.ParentForm.Controls.Add(Btn)
y += Btn.Height
ID += 1
End Sub
Private Sub Hai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim C As Control = sender
MsgBox("Hello Friend....! U Have Selected " & C.Text, MsgBoxStyle.Information, "")
End Sub
'--- END
|
|
|
|
|
Hello,
I am writing a UserControl in VB.NET. The UserControl has a class called NotifyClass. I have one USB device and when this device is connected to PC, I am taking this event to call the NotifyClass. On the other side, I have application in VB.NET which also calls a method a function in UserControl to pass some input parameters and get the result back. In short I have two instances one which calls my OCX notifyClass and one which calls OCX to get results. But these two events takes place at different times and there is no communication between them. Can anyone explain me how to implement communication between these remote objects?
I look forward to your reply.
thanks/regards,
Atul
|
|
|
|
|
Hi All,
I want to convert IntPrt back to its original Object in VB.NET.
Is it possible ? I am a newbee and I need help on this from u.
Thank you.
|
|
|
|
|
Not quite sure I get what you're asking. Could you post a code snippet/sample?
|
|
|
|
|
I am trying to figure out if VB.NET (or even VB6) is the best way to test for an existing instance of an application. Basically, I want the code to test (I assume in Processes) whether the application is already active, and if it is, not open a second instance. (Of course, if it is not already running, then the application should open). Can anyone steer me in the right direction?
|
|
|
|
|
Your application should do this, not some external application. The way you've worded this suggests that you think otherwise.
No, C++ is the best language to do this in, but if you're stuck with VB.NET, then there's no reason why VB.NET can't do it. There are tons of examples on the web, and probably even on CP. You're more likely to find them in C#, I'd have thought, but they should be easy to convert.
I have no doubt that this is beyond VB6's meagre abilities.
Christian
I have several lifelong friends that are New Yorkers but I have always gravitated toward the weirdo's. - Richard Stringer
|
|
|
|
|
Yes, the base application should do this...long story as to why it doesn't.
Anyway, VB.NET is what I'm "stuck with" to achieve this objective. Can you point me to some examples "on the web" and/or CodeProject?
Thanks!
|
|
|
|
|
You can do this with API calls, which are even within the grasp of VB6 "meager" abilities. LOL.
EnumProcesses is one way but it can be cumbersome to work with.
If the application creates a main window that has a reasonably unique caption that does not change (in other words, this would never work with a web browser, but is feasible for most regular compiled apps) you can use the FindWindowEx API.
If you search for the app caption and window class, and the handle returns as zero, the app is (probably) not running.
Use Spy to help you determine the caption and window class name to search for.
Robert
|
|
|
|
|
Robert,
Thank you for the information. I am not familiar with the type of calls you are referring to. Could you provide a code example to accomplish what you are describing? Thanks!
|
|
|
|
|
Here is a quick and dirty way of checking for a process.
First you need a reference to the SystemDiagnostics.
Imports System.Diagnostics
Then
Dim myProcess As Process() = Process.GetProcessesByName("ProcessName")<br />
If myProcess.Length > 1 Then<br />
MsgBox("You can only have one instance of this application running.")<br />
End If
Hope this helps
|
|
|
|