Solved

my compiled exe file conflict with msvbvm60.dll

Posted on 2001-07-04
15
278 Views
Last Modified: 2012-06-21
Currently i compiled my project into an exe file. but when i execute the exe file, it prompted me an error. the error is mentioned that my exe file conflict with the msvbvm60.dll. so anything i can do to overcome this problem?
0
Comment
Question by:WeeKeong
  • 4
  • 3
  • 2
  • +5
15 Comments
 
LVL 49

Accepted Solution

by:
Ryan Chong earned 50 total points
Comment Utility
Hi,

reinstall the vb 6 runtime file, then try again.
0
 
LVL 22

Expert Comment

by:mnasman
Comment Utility
i'm working with one project, it work with blob filed in access and oracle


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  DBCtrls, StdCtrls, Mask, Db, DBTables, ExtCtrls, Grids, DBGrids,Jpeg;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Table1: TTable;
    DataSource1: TDataSource;
    Database1: TDatabase;
    Table1PIC: TBlobField;
    DBNavigator1: TDBNavigator;
    OpenDialog1: TOpenDialog;
    DBGrid1: TDBGrid;
    Table1ID: TStringField;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DataSource1DataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
    FileName : String;
    procedure ReadPicFromDB;
  public
    { Public declarations }

  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
uses shellapi;
procedure TForm1.ReadPicFromDB;
var
  FileStream : TFileStream;
  BlobStream : TBlobStream;
begin
  Image1.Picture.Assign(nil);
  BlobStream := TBlobStream.Create(Table1Pic, bmRead);
  if BlobStream.Size =0 then
  begin
    BlobStream.Free;
    Exit;
  end;
  if FileName <> '' then
    DeleteFile(FileName);
  FileName := 'Img.jpg';
  FileStream := TFileStream.Create(FileName, fmCreate or fmOpenWrite);
  FileStream.CopyFrom(BlobStream,BlobStream.Size);
  FileStream.Free;
  BlobStream.Free;
  Image1.Picture.LoadFromFile(FileName);
end;// end procedure radpicfromdb

procedure TForm1.Button1Click(Sender: TObject);
var
  FileStream : TFileStream;
  BlobStream : TBlobStream;
begin
  Application.ProcessMessages;
  if OpenDialog1.Execute then
  begin
    Button1.Enabled := false;
    FileStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
    Table1.Edit;
    BlobStream := TBlobStream.Create(Table1Pic,bmReadWrite);
    BlobStream.Seek(0,soFromBeginning);
    BlobStream.Truncate;
    BlobStream.CopyFrom(FileStream,FileStream.Size);
    FileStream.Free;
    BlobStream.Free;
    Table1.Post;
    ReadPicFromDB;
    Button1.Enabled := True;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  if FileName <> '' then
    DeleteFile(FileName);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OpenDialog1.Filter := 'Jpeg Files |*.jpg';
  OpenDialog1.Options := [ofHideReadOnly, ofNoChangeDir];
  Image1.Stretch := true;
end;

procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  if DataSource1.State = dsBrowse then
    ReadPicFromDb;
end;

end.

0
 
LVL 22

Expert Comment

by:mnasman
Comment Utility
i'm so sorry, i wanted to put this code in delphi area but i was open ur question
0
 

Author Comment

by:WeeKeong
Comment Utility
ryancys:
i reinstalled the runtime file already, but the problem still the same.
0
 
LVL 49

Expert Comment

by:Ryan Chong
Comment Utility
Hi WeeKeong, what is the exact error prompted?
0
 
LVL 4

Expert Comment

by:WolfgangKoenig
Comment Utility
Perhaps you have old VB4 or VB5 code?
Then you must use VB4/5 or try to convert the project to VB6 code.
"msvbvm60.dll" is the VB6 virtual machine.

Bye
WoK
0
 
LVL 1

Expert Comment

by:ahmadpj
Comment Utility
Before compiling your project, goto your project properties(on project menu), then goto Compile page, and choose "Compile to P-Code" Option, and then compile your project, and test the .EXE file again..
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 4

Expert Comment

by:nutwiss
Comment Utility
get the lastest VB Service pack (SP5). You can get conflicts by using old SP versions of MSVBVM60 with newer executables
0
 
LVL 8

Expert Comment

by:glass_cookie
Comment Utility
Hi!

Here's just what I know about this conflicting thingy - although not that well.  I may be wrong, but it's just FYI:

I read somewhere out there over the net that there are 3 versions of the Msvbvm60.dll file, so, you may want to try something like downloading all 3 versions and try to run them.

I've got no idea why there is a need for 3 versions : |

That's it!

glass cookie : )

PS If your's is a 56K modem, you may not like downloading all those stuff.
0
 

Author Comment

by:WeeKeong
Comment Utility
ahmadpj:
i tried ur idea already but still got this error message. below is the error message.  

DIALER caused an invalid page fault in
module MSVBVM60.DLL at 017f:66014440.
Registers:
EAX=00000000 CS=017f EIP=66014440 EFLGS=00010246
EBX=00000000 SS=0187 ESP=017af98c EBP=017af990
ECX=00000005 DS=0187 ESI=00402830 FS=36ef
EDX=8161bf94 ES=0187 EDI=017af9d8 GS=0000
Bytes at CS:EIP:
8b 70 0c 8d 45 08 50 56 e8 21 00 00 00 85 c0 74
Stack dump:
00402830 017af9ec 660260eb 00000000 660ff416 00000003 017af9d8 017afa3c 017af9b8 017af9e8 017afa3c 00000000 00000000 00000000 00000000 00000000
0
 
LVL 22

Expert Comment

by:rspahitz
Comment Utility
This may not be specifically a conflict with MSVBVM60.  Instead, it may be something in your code that is referencing a function in the wrong way.

Is DIALER your app or an OCX add-in?

Are you using any API calls?
--
Add error-trapping to identify exactly which routine is generating the error, then we can further narrow the problem down by identifying the specific line causing the problem.

If that doesn't work, you'll have to add sequence logging to show exactly which lines are being processed before the problem occurs.

It's tedious, but it will just about guarantee a solution.
0
 

Author Comment

by:WeeKeong
Comment Utility
rspahitz:
i downloaded an ActiveX Control called rascontrol.ocx that use for dialing up mu modem in VB. actually i would like to create a VBA to do that dial up function and put it in the Tasks Scheduler. Everything works well when i run in VB, but after i compiled it to an exe file, it caused this problem when i am executing it. Hope u can suggest a better way to do that. Thanx
0
 
LVL 22

Expert Comment

by:rspahitz
Comment Utility
I've occassionally found that switching from VB to .exe causes a different set of conditions to occur.  The usually occur because you're running from a different folder, but sometimes it's command line settings or minor issues like that.

One option is to run the .exe from the VB folder (i.e. run from VB, check curdir in the immediate window, and copy the .exe to that place.)  If it runs okay, it's a path problem.

Either way, you really need to add error-trapping (possible initially at key points) so you can tell exactly what line is causing the problem.  Without that, we're just jabbing in the dark.
0
 

Author Comment

by:WeeKeong
Comment Utility
thx for help
0
 
LVL 49

Expert Comment

by:Ryan Chong
Comment Utility
Next time, just don't give me an 'c' if me really make help.
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Introduction While answering a recent question (http://www.experts-exchange.com/Q_27402310.html) in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now