typelib export: type library is not registered

4802
6
10-06-2014 11:10 PM
JinyaoYu
New Contributor

Hello, 

I have a problem with a .dll file. The Client PC is a Windows XP 32 Bit, the Server is a Microsoft Server 2008 64 Bit. When I compile the data on the Client PC with Any CPU, it runs without problems. But on the Server, it cannot be compiled and it crashes.

The exception is typelib export: type library is not registered (Exception from HRESULT: 0x80131165).

When I debug it, it crashes at geometrybridge2.setwkspoints(...); This method is a part of the .dll file.

Has anyone an idea how to fix this problem?

0 Kudos
6 Replies
FrankHellwich1
New Contributor III

Hi,

I think this is caused by the selected platform of your VS-project respectively the project of the process loading your dll. ArcObjects uses 32-bit COM objects, so if you use "Any cpu" on a 32-bit machine this means 32-bit. On a 64-bit machine this will be 64-bit - and that's you're problem. Make sure, that the process loading your dll is a 32-bit process - compile it with the platform target 'x86'.

Frank

0 Kudos
JinyaoYu
New Contributor

Hi Frank,

thanks for your quick response. But my problem is, that my App will be used on the server. So the target plattform is 'x64'. Changing my App on the Client from 'x86' to 'x64' throws many errors at VS.

On the Server the main App problem is the geometrybridge2.setwkspoints(...); method. Does someone know alternative methods or why it crashes?

Jin

0 Kudos
FrankHellwich1
New Contributor III

Hi Jin,

have you tried to compile your app as x86 and started this on your server ? This will be started as 32-bit process on the 64-bit machine and you have to use a 32-bit-process if you use ArcObjects (see this link - I'm not aware of any changes in this: Developing with ArcObjects on Windows 64-bit OS | jeff germain's blog  ). But maybe I didn't fully understand your setting.

Frank

0 Kudos
JinyaoYu
New Contributor

Hi Frank,

I tried to compile as x86 on the server, but I get an oracle error: The provider is not compatible with the version of Oracle Client.

0 Kudos
FrankHellwich1
New Contributor III

Hi Jin,

2 possible reasons:

* you need the 32 bit version of the oracle-client

* or: it is the correct platform but the wrong oracle-version (e.g. 12 instead of 10 or 11). Compare this to your client-machine.

You can have several oracle-clients in parallel on your system, important is to check the one that is found first by the PATH-setting_

Open a cmd window and type: sqlplus

you will see an version-information for the oracle-client. Compare this infos between the two machines.

Hope this helps

Frank

0 Kudos
JinyaoYu
New Contributor

Hi Frank,

I think I need a 32 bit version. I will try the oracle managed driver... hope that this solves my problem.

Jin

0 Kudos