Ok, eve ga
Prikacen je solution sa tri projekta:
- FirstManagedVB sa datom klasom, cist managed code
- SecondNativeWrapper - pomenuti wrapper koji marshaluje pozive od native pozivara u gornju managed klasu
- ThirdNativeCaller - mala C++ aplikacija, Win32 native koja se kaci na SecondNativeWrapper.dll i poziva Add(int, int)
Ako se pogleda exports sekcija SecondNativeWrapper.dll vidi se da ima native export iako je managed C++
Dumpbin prijavljuje export u SecondNativeWrapper.dll:
Code:
C:\Projects\NativeSolution\Debug>dumpbin SecondNativeWrapper.dll /exports
File Type: DLL
Section contains the following exports for SecondNativeWrapper.dll
00000000 characteristics
47CB0662 time date stamp Sun Mar 02 20:56:18 2008
0.00 version
1 ordinal base
1 number of functions
1 number of names
ordinal hint RVA name
1 0 00001020 _Add@8 = _Add@8
Dumpbin prijavljuje taj export kao import za ThirdNativeCaller.exe
Code:
C:\Projects\NativeSolution\Debug>dumpbin ThirdNativeCaller.exe /imports
File Type: EXECUTABLE IMAGE
Section contains the following imports:
SecondNativeWrapper.dll
418350 Import Address Table
4181B8 Import Name Table
0 time date stamp
0 Index of first forwarder reference
0 _Add@8
Kad pozoves Win32 aplikaciju, ona lepo podigne wrapper, koji podigne .NET klasu i sabere brojeve:
Code:
C:\Projects\NativeSolution\Debug>ThirdNativeCaller.exe
Prvi broj: 12
Drugi broj: 23
Rezultat sabiranja je 35
voila..
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić