01/10/2018, 11:39

Import COM type .dll file trong VC++

Mình đang viết một ứng dụng quản lí driver máy in PT-2130N.
Trong SDK download về mình có xem qua sample code C++ là họ dùng pre-processor

#import "printer.dll"

Và ở phần chương trình có thể sử dụng hàm trong cái file dll đó được mà không include bất kì file header nào
Ở phần hàm xử lí in MFC (khi nhận event click button print) thì họ viết kiểu thế này:

IClassPtr pICalc(__uuidof(ObjectClass));

để khai báo sử dụng class trong file dll kia, tuy nhiên ở chương trình của mình (console app), khi khai báo như vậy thì không thể sử dụng (mặc dù khi build exe thì ok), nó trả về exeption ngay dòng đó.

Bạn nào từng dùng cách import này thì xin chỉ giáo vài chiêu

Dark.Hades viết 13:53 ngày 01/10/2018

Đã xử lí được, tham khảo:
https://support.microsoft.com/en-us/help/828736/how-to-call-a-managed-dll-from-native-visual-c-code-in-visual-studio-n

Để có thể gọi class trong 1 file *.dll thì cần báo cho chương trình biết có sử dụng type COM (thường đặt ở đầu hàm main()):

HRESULT hr = CoInitialize(NULL);

Vì thiếu lệnh khai báo đó mà nó toàn exception.

Bài liên quan
0