Saab Electronic Parts Catalogue (EPC) hangs upon startup

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
trash
Level 1
Level 1
Posts: 5
Joined: Thu Sep 04, 2008 4:21 pm

Saab Electronic Parts Catalogue (EPC) hangs upon startup

Post by trash »

Hello everyone,

I am trying to get Saab's Electronic Parts Catalogue (EPC) to work with Wine. This is the only program I need running on Windows and stops me from fully enjoying the Linux. I'm running FC 9 with Wine v1.0. The installation goes very smoothly with no issues at all. However the program fails to start. It hangs when the main screen is supposed to show. I am getting following messages on the console. Any ideas/suggestions would be highly appreciated:

Code: Select all

err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
fixme:storage:StgCreateDocfile Transacted mode not implemented.
err:ole:marshal_object object doesn't expose interface {00000126-0000-0000-c000-000000000046}, failing with error 0x80004002
err:rpc:I_RpcReceive we got fault packet with status 0x80004002
err:ole:ClientIdentity_QueryMultipleInterfaces IRemUnknown_RemQueryInterface failed with error 0x80004002
fixme:ole:DllGetClassObject 
	CLSID:	{b196b286-bab4-101a-b69c-00aa00341d07},
	IID:	{d5f569d0-593b-101a-b569-08002b2dbf7a}
err:ole:apartment_getclassobject DllGetClassObject returned error 0x80040111
err:ole:CoGetClassObject no class object {b196b286-bab4-101a-b69c-00aa00341d07} could be created for context 0x80000001
err:ole:marshal_object couldn't get IPSFactory buffer for interface {b196b284-bab4-101a-b69c-00aa00341d07}
err:rpc:I_RpcReceive we got fault packet with status 0x80004002
err:ole:ClientIdentity_QueryMultipleInterfaces IRemUnknown_RemQueryInterface failed with error 0x80004002
I tried using winetricks to get rid of the OLE problems. After installing the dcom98 and mdac28 I was able to get rid of almost all messages on the screen. The application still fails to start though. The only messages I see are below:

Code: Select all

err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
err:richedit:ReadStyleSheet ReadStyleSheet: skipping optional destination
I then tried to use Dependency Walker to see if I have missing DLL's or something of that kind. It does not report on any missing DLL's, but it gives following message I do not understand unfortunately:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Warning:At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
jorl17
Level 5
Level 5
Posts: 365
Joined: Mon Jul 28, 2008 6:44 pm

Post by jorl17 »

Hi, to fix the last warnings you can get winetricks and install msls31 and riched20.

So:

Code: Select all

cd ~
wget http://www.kegel.com/wine/winetricks
sh winetricks msls31 riched20
This 'might' fix it (if it doesn't try adding riched30 to the last line). If it does, tell us, please.
trash
Level 1
Level 1
Posts: 5
Joined: Thu Sep 04, 2008 4:21 pm

Post by trash »

Thanks, you were right. Installing msls31 and riched20 did get rid of those two messages. The application still fails to start though. It again hangs the moment the main screen is supposed to pop up. Any ideas how to debug this further? There's absolutely nothing on the console now.
qwertymn
Level 4
Level 4
Posts: 236
Joined: Thu Mar 27, 2008 3:42 am

Post by qwertymn »

is there a demo that shows the same problem, so we could test ourselves?

also, does winetricks dcom98 change anything?
jorl17
Level 5
Level 5
Posts: 365
Joined: Mon Jul 28, 2008 6:44 pm

Post by jorl17 »

Also, did you try to change emulated version? Sometimes it helps due to different functions for the same means.
trash
Level 1
Level 1
Posts: 5
Joined: Thu Sep 04, 2008 4:21 pm

Post by trash »

qwertymn wrote:is there a demo that shows the same problem, so we could test ourselves?

also, does winetricks dcom98 change anything?
I've uploaded the program to below link. You can download it from
HERE

The dcom98 does not change anything apart from the ole related errors listed in my initial post to go away.
trash
Level 1
Level 1
Posts: 5
Joined: Thu Sep 04, 2008 4:21 pm

Post by trash »

jorl17 wrote:Also, did you try to change emulated version? Sometimes it helps due to different functions for the same means.
Yes, I did try that, but it does not help unfortunately. Currently with all the winetricks patches installed, I'm not able to set anything above Win 98. Trying to set NT or above ends with Wine crashing.
qwertymn
Level 4
Level 4
Posts: 236
Joined: Thu Mar 27, 2008 3:42 am

Post by qwertymn »

hi, i get different console output then you, so for now i'll just share my experiences here. I installed on a complete fresh ~/.wine (you can do something like WINEPREFIX=~/garbage wine SETUP.EXE, after installation WINEPREFIX=~/garbage wine EPC.EXE)
The installation went smoothly, after starting i get the splash screen, then the main gui, but then an error messagebox pops up about a DIB error, and then the app freezes. I guess that 's a bug in wine somewhere. I did not install any additional winetricks packages. With the stupid hack below i was able to start the app, but i'm not sure if it's functional, as many menu items are greyed out, and i dunno really how to use the app. Maybe you could try the above recipe , and see how far you can get. The DIB-bug needs more investigation, but i lack time atm to do so



diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 440857d..2d7b0ac 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -1076,6 +1076,7 @@ INT WINAPI GetDIBits(
done:
release_dc_ptr( dc );
GDI_ReleaseObj( hbitmap );
+ if(!lines) return 1;
return lines;
}
trash
Level 1
Level 1
Posts: 5
Joined: Thu Sep 04, 2008 4:21 pm

Post by trash »

Hi!

I've downloaded v1.1.4 source codes and compiled it. First without the patch that you suggested. To my surprise I managed to get the program working without the patch for the first time. Then upon second startup got the same DBI error as your did. I tried to start the program and noticed that the error pops up randomly.
Nevertheless I applied the patch you gave and of course it sorted out the problem once and for all. Thank You!
The program works almost like a dream. There is one particular problem which makes Wine crash all the time. When you try to drag the diagram pictures, Wine will crash. Here's how you can simulate it:

1. once the program runs choose:
Model: 900
Year: L - 1990
Press "OK" Button

2. New screen will appear, choose:
Engine and any item on the right, for example Engine Mounting
Press "OK" Button

3. You will now get another screen which on the left hand size has a diagram of the parts and on the right hand side part number. You can drag the diagram to move it around the screen. If you try doing that Wine will crash with following error:

Code: Select all

err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000040 for in-use arena 0xe114e0
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000020 for in-use arena 0xe11778
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000018 for in-use arena 0x21cc98
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000048 for in-use arena 0xc70b10
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000080 for in-use arena 0xc55650
wine: Unhandled page fault on read access to 0x000000ac at address 0x7bc41f91 (thread 0009), starting debugger...
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7bc41f91
Anyway I can use the application now, which is really great! Thanks a lot!
Susan Cragin

Saab Electronic Parts Catalogue (EPC) hangs upon startup

Post by Susan Cragin »

Isn't that an ole problem?
Have similar problem with Writers Blocks. That's a simple program and all it really does is move blocks of plain text around using ole.

-----Original Message-----
From: trash <[email protected]>
Sent: Sep 6, 2008 7:31 AM
To: [email protected]
Subject: [Wine] Re: Saab Electronic Parts Catalogue (EPC) hangs upon startup

Hi!

I've downloaded v1.1.4 source codes and compiled it. First without the patch that you suggested. To my surprise I managed to get the program working without the patch for the first time. Then upon second startup got the same DBI error as your did. I tried to start the program and noticed that the error pops up randomly.
Nevertheless I applied the patch you gave and of course it sorted out the problem once and for all. Thank You!
The program works almost like a dream. There is one particular problem which makes Wine crash all the time. When you try to drag the diagram pictures, Wine will crash. Here's how you can simulate it:

1. once the program runs choose:
Model: 900
Year: L - 1990
Press "OK" Button

2. New screen will appear, choose:
Engine and any item on the right, for example Engine Mounting
Press "OK" Button

3. You will now get another screen which on the left hand size has a diagram of the parts and on the right hand side part number. You can drag the diagram to move it around the screen. If you try doing that Wine will crash with following error:



Code:

err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000040 for in-use arena 0xe114e0
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000020 for in-use arena 0xe11778
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000018 for in-use arena 0x21cc98
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000048 for in-use arena 0xc70b10
err:heap:HEAP_ValidateInUseArena Heap (nil): bad size 00000080 for in-use arena 0xc55650
wine: Unhandled page fault on read access to 0x000000ac at address 0x7bc41f91 (thread 0009), starting debugger...
err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7bc41f91




Anyway I can use the application now, which is really great! Thanks a lot!



jorl17
Level 5
Level 5
Posts: 365
Joined: Mon Jul 28, 2008 6:44 pm

Post by jorl17 »

qwertymn wrote:hi, i get different console output then you, so for now i'll just share my experiences here. I installed on a complete fresh ~/.wine (you can do something like WINEPREFIX=~/garbage wine SETUP.EXE, after installation WINEPREFIX=~/garbage wine EPC.EXE)
The installation went smoothly, after starting i get the splash screen, then the main gui, but then an error messagebox pops up about a DIB error, and then the app freezes. I guess that 's a bug in wine somewhere. I did not install any additional winetricks packages. With the stupid hack below i was able to start the app, but i'm not sure if it's functional, as many menu items are greyed out, and i dunno really how to use the app. Maybe you could try the above recipe , and see how far you can get. The DIB-bug needs more investigation, but i lack time atm to do so



diff --git a/dlls/gdi32/dib.c b/dlls/gdi32/dib.c
index 440857d..2d7b0ac 100644
--- a/dlls/gdi32/dib.c
+++ b/dlls/gdi32/dib.c
@@ -1076,6 +1076,7 @@ INT WINAPI GetDIBits(
done:
release_dc_ptr( dc );
GDI_ReleaseObj( hbitmap );
+ if(!lines) return 1;
return lines;
}
MSDN:
GetDIBits
The GetDIBits function retrieves the bits of the specified compatible bitmap and copies them into a buffer as a DIB using the specified format.
Return Values

If the lpvBits parameter is non-NULL and the function succeeds, the return value is the number of scan lines copied from the bitmap.
I don't exactly agree with patches that only try to work around past some point. Because what we are doing here is bad (I believe, but correct me if wrong), because we are saying that it all went well and that we copied one scanline from the bitmap, when, in fact, that wasn't the case. So this means we are 'lying' to get one app to get past one point, which may make a bunch of other games not work or even make this game fail later on (which could be the case).

But, oh well, you know that:
stupid hack
I think that a bug should be submitted with all the necessary information and this could be later fixed. If you can live with that fix I suggest you make a specific wine-patched-version that only runs that application, so that you know that won't affect other games.

But, oh well, I'm glad you got it to work to the degree you needed :)
qwertymn
Level 4
Level 4
Posts: 236
Joined: Thu Mar 27, 2008 3:42 am

Post by qwertymn »

>I don't exactly agree with patches that only try to work around past some point. Because what we are doing here is bad (I believe, but correct me if wrong), because we are saying that it all went well and that we copied one scanline from the bitmap, when, in fact, that wasn't the case. So this means we are 'lying' to get one app to get past one point, which may make a bunch of other games not work or even make this game fail later on (which could be the case).
This is a wine-users lists, not a wine-development list, so i think it's ok to post stupid hacks here. Of course the hack is horrible, and indeed is likely to crash other applications. But on this forum users are trying to get an app running, and i bet they're not concerned about correctness of code. Finding a real fix will need you hours of investigation and writing tests. I don't have the time for that (or even the knowledge i guess). For a real fix you'll have to open a bugreport in bugzilla, and hope a developer jumps in. Regards
jorl17
Level 5
Level 5
Posts: 365
Joined: Mon Jul 28, 2008 6:44 pm

Post by jorl17 »

You are right, I just wanted to tell him that the fix might have consequences in other games and that he might know why like this. But I'm glad he got his help. I'd say this topic is finished.
Locked