2013-08-28 12 views

Odpowiedz

9

Podczas budowania biblioteki DLL łącznik automatycznie tworzy bibliotekę importu dla biblioteki DLL. Zawiera listę wszystkich wyeksportowanych funkcji. Korzystasz z tej biblioteki importu w innym projekcie korzystającym z biblioteki DLL.

Specyficzne dla serwerów COM jest to, że te 4 wyeksportowane funkcje są zawsze odnajdywane za pomocą funkcji GetProcAddress() i nigdy nie masz niejawnej zależności od biblioteki COM. Zawsze tworzysz obiekty COM za pomocą CoCreateInstance(), instalacja hydrauliczna COM zajmuje się lokalizacją biblioteki DLL i użyciem funkcji GetProcAddress() w celu znalezienia funkcji DllGetClassObject(). Ta sama historia dla DllUn/RegisterServer, znaleziona przez Regsvr32.exe. I DllCanUnloadNow, znalezione przez instalacje COM. Dlatego nie potrzebujesz biblioteki importu.

Użycie PRIVATE zapewnia, że ​​funkcja nie zostanie wyeksportowana do biblioteki importu. Wszystkie z nich są prywatne, więc nie masz biblioteki importu. Nic nie pójdzie źle, jeśli go pominiesz, otrzymasz dodatkowy plik z linkera, którego nigdy nie będziesz używał.

Powiązane problemy