Tuesday, June 23, 2015

Saturday, May 2, 2015

[C++ Builder] [TLIB Warning] Warning: library was too large for page size, rebuilt with page size 64


[C++ Builder XE6] Error! Import Bentley Microstation (V8) Type Library (E2347)

[bcc32 Error] MicroStationDGN_OCX.h(2159): E2347 Parameter mismatch in write access specifier of property Vertex


void __fastcall set_Vertex(int Index/*[in]*/,  Microstationdgn_tlb::Point3d* pVal/*[in,out]*/);

__property Microstationdgn_tlb::Point3d Vertex[int Index]={ read=get_Vertex, write=set_Vertex };


void __fastcall TEllipseElement::set_Vertex(int Index/*[in]*/,
Microstationdgn_tlb::Point3d* pVal/*[in,out]*/)
  GetDefaultInterface()->set_Vertex(Index/*[in]*/, pVal/*[in,out]*/);

---------------------------------------  Solution  -----------------------------------------------------------------


void __fastcall set_Vertex(int Index/*[in]*/,  Microstationdgn_tlb::Point3d& pVal/*[in,out]*/);


void __fastcall TEllipseElement::set_Vertex(int Index/*[in]*/,
Microstationdgn_tlb::Point3d& pVal/*[in,out]*/)
  GetDefaultInterface()->set_Vertex(Index/*[in]*/, &pVal/*[in,out]*/);

---------------------- Explain  ----
Parameter type of set_ function should be the same as the type of the Property.

[C++ Builder XE6] Import Type Library as ActiveX Component (Ex: AutoCAD)

1. Create a new project.

2. [Component] [Import Component...]

3. [Import a Type Library]

4. Select the Type Library to be imported. ( Ex: AutoCAD )

5.1 Check [Generate Component Wrappers]
5.2 Assign Palette Page.

6. [Install to New Package]

7. Assign [Package Name] ........[Finish]


9. Right click on the package project.....[Install]


11. Components installed.

[Qt] 執行檔需要哪些 Dll?

 1. 使用 Qt  的 windeployqt.exe 工具 (在 C:\Qt\Qt5.14.1\5.14.1\msvc2017\bin\)。   a. 把執行檔 myProgram.exe 放在某個資料夾。   b. 在檔案總管這個資料夾按 Shift 和滑鼠右鍵,開啟 Po...