Вы можете обернуть сторонний SDK в модуле TypeScript, используя хак с eval
.
Предположим, что ThirdPartySDK.js выглядит следующим образом:
var ThirdPartySDK = (function () {
var exports = {
foo: function () { console.log("Hello, world!"); }
};
return exports;
})();
Затем вы создадите модуль ThirdPartySDK-wrapper.ts, который будет выглядеть примерно так:
import * as fs from 'fs';
const script = fs.readFileSync('../lib/ThirdPartySDK.js').toString();
global.eval(script);
//@ts-ignore
export default ThirdPartySDK;
[1112 ] Директива @ts-ignore
требуется, чтобы компилятор TypeScript не жаловался на то, что не нашел объявление для переменной ThirdPartySDK
(это объявляется в сценарии, выполняемом через eval
).
Затем вы можете импортировать ThirdPartySDK через модуль оболочки:
import ThirdPartySDK from './wrapper';
ThirdPartySDK.foo(); // Console output: "Hello, world!"
Обратите внимание, что эта оболочка работает только для приложений, работающих в Node.js, поскольку она использует fs.fileReadSync
для получения содержимого скрипта.
Если вы собираетесь использовать его в браузере, вам понадобится другой способ получить скрипт. Возможно, вы могли бы использовать такие инфраструктуры, как WebPack, для связывания скрипта ThirdPartySDK в виде строкового значения, которое вы можете require
в модуле оболочки.
Инструменты MZ.
Свободный. Много дополнительных инструментов для IDE, как "Любимые Процедуры" и "Добавляют программа обработки ошибок к prodedure" и партиям больше.
Я еще не попробовал это сам, но , CodeShine является дешевым дополнением рефакторинга для VB6. Это может сделать полезное метод извлечения рефакторинг, по-видимому.
я должен прекратить напрасно тратить время здесь и загрузить бесплатная демонстрационная версия для испытания его.
Обработка ошибок VB6 сосет. Таким образом, я принял эти шаблоны для помощи:
Блок try-catch:
'Try
On Error Goto catchX
...
'Catch
catchX: if err.number then
...
resume resumX
resumX: end if
On Error Goto outside_catch_label_name
'End Try
Включая отслеживание стека по ошибкам:
sub rethrow(byval source as string)
Err.Source = Err.Source & vbNewLine & vbTab & "@ " & Source
Err.Raise Err.Number, Err.Source, Err.Description
end sub
sub some_sub: on error goto throw
...
throw: if err.number then rethrow("some_sub")
end sub
Я обнаружил много вещей, когда я сначала учился при помощи мастеров делать формы/небольшие приложения и затем исследовал код, они производят.
Надстройка vbAdvance теперь бесплатна.
vbAdvance - это надстройка Visual Basic, предоставляющая доступ к расширенным функциям сборки и многим удобным функциям IDE. Создание консольных приложений, создание стандартных библиотек DLL, которые экспортируют функции, создание точки входа DllMain в ваших библиотеках DLL, компилятор XP Manifest для стилей XP, сервер терминалов и т. Д.
Книга VB Matt Curlands Power и инструменты VBoost, которые шли с ним, особенно редактор Библиотеки типов.
Просто не упускают не-DEP совместимые методы.
Выезд http://angryhacker.com/blog/archive/2008/05/01/vb6-swiss-army-knife.aspx
Это имеет большинство инструментов, которые я использую для того, каждый раз, когда я должен копаться в VB6 плюс описание того, что они делают. В дополнение к инструментам, упомянутым здесь, это также имеет следующее:
Make My Manifest может создавать COM-манифесты без регистрации (при необходимости добавляя «Стили») , так далее.). Это позволяет XCopy развертывать многие VB6 EXE-файлы в WinXP или более поздней версии.
Больше нет опасений «зависимости» или DLL Hell!
Весь сайт mvps.org здесь
я рекомендую Karl Peterson' Один источник остановки и VBnet Randy Birch (который не имеет никакого отношения к VB.NET), и Заменяющий Проект Общего контроля.
Шаблоны разработки GoF. В то время как это не кажется специфичным для VB6 то, что большинство шаблонов базируется, интерфейсная реализация и агрегирующиеся объекты (в противоположность наследованию) делают его хорошо удовлетворенным для использования с VB6. Они говорят об этом на страницах 16 - 18 и подводят итог его в одном операторе. Программа к интерфейсу, не implmentation, Если существует одна вещь, что VB6 и COM преуспевают, является интерфейсами дескриптора.
Я, которого realllly очень не хотят проверить, чтобы видеть, является ли массив неинициализированным путем передачи его функции помощника, которая пытается сделать UBound и фиксирует ошибку, если это происходит.
Решение?
Использование VarPtr для получения адреса массива передайте адрес CopyMemory для получения структуры SafeArray для массива, если структура SafeArray указывает на 0 размеров, массив является неинициализированным.
РЕДАКТИРОВАНИЕ благодаря Lance для хорошей ссылки с примером
http://vbnet.mvps.org/index.html?code/helpers/getarraydims.htm
Удивительно, сколько людей не использует кнопки IDE для комментария и некомментария блоков исходного кода. Они находятся на панель инструментов Edit и похожи на это: сопроводительный текст http://img231.imageshack.us/img231/1949/vb6commentbuttons.gif . Щелкните правой кнопкой в незанятой части области панели инструментов и отметьте опцию Edit отобразить панель инструментов.
я когда-то посетил "Усовершенствованный VB6" курс, где преподаватель не знал о тех кнопках.
<час>РЕДАКТИРОВАНИЕ: AngryHacker имеет путь для соединения сочетаний клавиш с этими кнопками, чтобы прокомментировать и не прокомментировать блоки кода при нажатии клавиши.
После установки VB6 я всегда делаю это удовлетворение требованиям заказчика на Опциях Инструментов.
Выключают Автоматическую Проверку синтаксиса на вкладке Editor. Вы не хотите окна сообщения при вводе синтаксической ошибки - Вы просто хотите проблемную строку, отображенную красным, таким образом, можно зафиксировать его позже.
Включают, Требуют Объявления переменной на вкладке Editor. Не думайте, просто делайте это.
Выключают Компиляцию По требованию на вкладке "Общие". Вы хотите быть сказанными о синтаксических ошибках сразу при выполнении кода, не как раз в то самое время, когда изворотливую стандартную программу на самом деле называют.
РЕДАКТИРОВАНИЕ: Подсказка для сохранения изменений , когда программа запускается на вкладке Environment. (Благодарен за то, что wqw напоминает мне в комментариях.)
Набор Обнаружение ошибок для "Повреждения на необработанных ошибках" на вкладке "Общие". На самом деле это - персональное предпочтение - но необходимо выбрать установку, которая подходит Вам. Надо надеяться, Вы разработали стратегию обработки ошибок программы VB6?
у меня есть жидкокристаллический экран, и цвета по умолчанию не работают очень хорошо, таким образом, я изменяю их на более легкие. Я также использую шрифт Consolas . Делает мой двадцать первый век взгляда кода VB6 так или иначе:)
Сайт vbAccelerator . В нем так много отличных примеров и бесплатных элементов управления с полным исходным кодом. Сайт не обновлялся уже несколько лет,
Один отличный инструмент, который я использовал, называется CodeFixer. Я полагаю, что впервые наткнулся на CodeFixer здесь .
Это даже с открытым исходным кодом. У меня был небольшой контакт с автором, Роджер Гилкрист,
Анализатор проекта Aivosto http: // www.aivosto.com/project/project.html
Не могу поверить, что никто еще не опубликовал Hardcore Visual Basic Брюса МакКинни (теперь бесплатно онлайн на mvps.org) ! Хорошо, это скорее книга, чем программа, но она расширяется до настоящего рога изобилия инструментов и советов.
Абсолютно необходима замена класса коллекции из Паучий глаз под названием Гибкая сумка для паучьих глаз . Он на 100% лучше, чем классы коллекций, поставляемых с VB, и невероятно быстр по сравнению с исходными коллекциями. Коллекция Flexbag была написана Гэри Вишневски, известным на «Домашней странице Visual Basic Карла и Гэри».
К сожалению, на сайте Spider Eye, похоже, нет ссылки на Flex Bag в настоящий момент, но я уверен если вы свяжетесь с ними, они будут рады что-нибудь для вас уладить. Если вы вообще занимаетесь какой-либо работой, основанной на коллекциях, то это того стоит.
Средство поиска кода AVE очень удобно, потому что функция поиска в среде VB6 IDE может ' нельзя доверять. AVE Code Finder также намного быстрее, чем встроенный Find. Его написал Ярек Звеж из www.ave.com.pl , но сайт, похоже, больше не существует, поэтому версия, на которую я ссылаюсь, находится на VB2TheMax.
SmartIndenter заботится обо всех автоматических отступах. Он делает одно, и делает это очень хорошо. И это бесплатно.
http://www.oaltd.co.uk/Indenter/Default.htm
SmartIndenter http://img151.imageshack.us/img151/1392/screencaps1.jpg[1285 impression
VB6 IDE не запоминает ваши предпочтения в отношении максимизации окон кода. Для запуска с развернутыми окнами кода VB6 установите этот строковый ключ реестра:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Visual Basic \ 6.0]
«MdiMaximized» = «1»