Как сделать TLB30.06.2023, 20:11. Показов 4194. Ответов 34
Метки нет (Все метки)
Все говорят об этих волшебных штуках, о том, какие возможности и удобства.., но никто ни говорит, как их делать. Видел статью как это делается с помощью специальной проги на Delfi, можно ли ее использовать для VB?
0
|
|
| 30.06.2023, 20:11 | |
|
Ответы с готовыми решениями:
34
*.tlb файлы - как их делать и как они работают ????
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 05.07.2023, 06:31 | |
|
testuser2, а чего ты не попробуешь на VB6? Да и вообще чего ты так на этом VBA помешался. Программировал бы лучше на VB6.
0
|
|
| 05.07.2023, 07:38 [ТС] | ||
|
Добавлено через 12 минут На Пайтоне подобная концепция реализована в виде библиотеки скриптов. Недавно запись была про это. https://www.cyberforum.ru/blog... g8158.html Удобно - надо какую-то задачу сделать - выбрал нужный скрипт. Но мне не нравится, что там при выполнении скрипта, выводится какая-то билиберда консолью, вообще не понимаю в этом смысла.
0
|
||
| 06.04.2025, 12:44 [ТС] | |
|
Хотелось бы все-таки понять, как скомпилировать с помощью midl, мне это нужно чтобы создать декларацию с LONG_PTR. Я пробовал компилить даже нормальные, рабочие idl-ы, не получается, все время чего-то не хватает, чего-то там кричит про cl.exe. Стыдно сказать, даже к ИИ обращался с вопросом, но он не дал мне божественного знания, а только все время
0
|
|
| 06.04.2025, 12:49 [ТС] | ||||||
|
The trick, у меня есть своя простейшая tlb-шка всего с одной функцией. Я ее откры OleView и сохранил от туда файл IDL и попытался скомпилить с ключем /tlb последний раз это было так. Я уже наустанавливал всякой "требухи" типо Windows Kits, Даже VS 2017 Community установил не че не помагает (
0
|
||||||
|
Модератор
|
|||||||||||
| 06.04.2025, 13:09 | |||||||||||
|
testuser2, нужно сначала настроить пути типа такого:
2
|
|||||||||||
| 06.04.2025, 13:34 [ТС] | ||
|
Все-таки от статичности TLB видимо ни куда не уйти. А в TLB можно делать парметр, допустим какой-нибудь второ с дефолтным значением, а остальные обычные?
0
|
||
|
Модератор
|
|
| 06.04.2025, 14:18 | |
|
2
|
|
| 06.04.2025, 15:36 [ТС] | ||||
|
Добавлено через 30 минут typedef void* PtrPtr ?Добавлено через 6 минут Вижу, есть аттрибут ptr https://learn.microsoft.com/ru... 2/midl/ptr Но еще бы понять, может ли это добавить каких-то возможностей Vb..
0
|
||||
| 24.04.2025, 16:39 [ТС] | |
|
Получилось все-таки скомпилировать с помощью midl-а таким образчиком
1 сначала нужно найти vcvars32.bat (или vcvars64.bat) 2 открыть окно команд от администратора и выполнить батник 3 выполнить midl "путь к .tlb" tlb компилируется и попадает в системный каталог SysWOW64 (или System32, как полагаю, я использовал vcvars32.bat)
0
|
|
| 02.08.2025, 13:23 [ТС] | ||||||||||||||||||||||
|
Нашел, как настоящий LongPtr добавлять в tlb, для этого нужно добавлят импорт
Добавлено через 21 минуту Еще одну вещь увидел в stdole2.tlb тип OLE_COLOR определен как unsigned long, вау, думаю, а не работает ли unsigned в VBA. Неа, код выполняется без ошибок )(
Дальше об экспериментах
1
|
||||||||||||||||||||||
| 23.11.2025, 07:49 [ТС] | ||||||||||||||||
|
Опять же не понятная ситуация
В VBE7 есть модуль Constants
Разобрался. В Atl-проекте, в демонстрационном модуле автоматически добавляется заголовок такого вида #include "название_проекта_i.h" (в моем случае ATLVBA_i.h), я думал, что это необходимо и добавлял этот инклд во все новые модли. Но это вот как раз мешало откомпилировать константы в idl-модуле, поскольку все константы и функции из idl автоматически попадают в ATLVBA_i.h, а посколь ATLVBA_i.h был заинклюден в несколько модулей, то в них автоматически попадают определения из ATLVBA_i.h, т.е. из файла idl. И все вроде в порядке, но с константами из idl почему-то происходит такая фигня, что они как-будто переопределяются в каждом модуле по-новой и начинают друг с другом конфликтовать. В обем убрал во всех своих модулях #include "ATLVBA_i.h" и компиляция прошла нормально и константа появилась в Object-браузере.
0
|
||||||||||||||||
| 23.11.2025, 07:49 | |
|
Помогаю со студенческими работами здесь
35
Как сделать Typelib (.TLB) файл для компонентов ActiveX Как зарегистрировать msdatsrc.tlb Как получить библиотеку типа *.tlb из COM-объекта *.exe Как в редакторе tlb (COM) указать тип параметра "HBITMAP *p" Дерегистрация TLB Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Гайд, как ворваться в вайб-кодинг в мае 2026
Noname2331 17.05.2026
Простите за получившееся полотно текста, я даже не знаю, как его разбить на главы. Тут, что называется, ни добавить ни убавить, одна сцена одним дублем.
На моих глазах недавно случилось чудо. Как. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|