My development environment is:
Windows 7 64 bit
Visual Studio 2008
.Net 3.5 SP1
UCMA 3.0
The sample application creates a user endpoint and sends an instant message to a remote user.
The sample application contains 2 projects
- C# console project (platform target x86)
- C# class library (platform target x86)
* has a reference to Microsoft.Rtc.Colloboration
* uses unsafe code (DllImport) to call a trace function in a 32-bit native dll
- Both projects compile without any error
- When the application is started , the process is shown as a 32 bit application in the Windows task-manager (TestUCMAClient.exe *32) . Sending the instant message works.
I used the tool CorFlags.exe to get details for Microsoft.Rtc.Colloboration
CorFlags.exe "C:\Windows\assembly\GAC_MSIL\Microsoft.Rtc.Collaboration\4.0.0.0__31bf3856ad364e35\Microsoft.Rtc.Collaboration.dll"
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 3.5.21022.8
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 9
ILONLY : 1
32BIT : 0
Signed : 1
PE = PE32 and 32BIT=0 means -> ANYCPU !!!
Now I am a little bit confused, because I thought UMCA 3.0 works only with 64 bit code. But the sample application is compiled for x86 target and it works.
Can anybody explain this ??