Дос Опубликовано 24 октября, 2008 Жалоба Share Опубликовано 24 октября, 2008 Здравствуйте господа прогеры). Вопрос возник: Можно ли dll(являющийся COM) написанной на Visual С# прекерепить к программкам написанным в FoxPro9? Если можно то как загрузить эту dll-ку в фоксе? P.S. Знаю что Фокс в наше время уже устарел, но вопреки всему столкнулся с такой проблемой… Ссылка на комментарий Поделиться на другие сайты More sharing options...
VanDerKeen Опубликовано 24 октября, 2008 Жалоба Share Опубликовано 24 октября, 2008 Дос не судьба по специализированным форумам полазить или там спросить? На сколько я помню, ты уже не в первый раз вопросы тут задаешь и ни разу не получил толковый ответ. Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 24 октября, 2008 Автор Жалоба Share Опубликовано 24 октября, 2008 VanDerKeen я все таки надеюсь что тут есть толковые программеры... И все же жду ответа от mr.Faster-а, на мое мнение одного из профессиональных тут кодеров. Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 24 октября, 2008 Жалоба Share Опубликовано 24 октября, 2008 Можно. Как и любой другой com-объект. Только вот зачем все это... Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 октября, 2008 Жалоба Share Опубликовано 24 октября, 2008 Дос ээээ спасибо конечно. но я как бы только на веб завязан... Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 24 октября, 2008 Автор Жалоба Share Опубликовано 24 октября, 2008 MarkV Сказал же задача такая, я вообще фокс терпеть не могу, недоязык блин... Но вот надо. К С++ привязал нормально. Нужен в Фрксе, а как? хз.. xct Ничего стоющего не нашел Ссылка на комментарий Поделиться на другие сайты More sharing options...
mr.Faster Опубликовано 24 октября, 2008 Жалоба Share Опубликовано 24 октября, 2008 http://yandex.ru/yandsearch?text=%D0%BF%D0...2Fh0%2Ftm3%2Fs2 http://www.sql.ru/forum/actualthread.aspx?tid=90585 http://forum.foxclub.ru/read.php?29,239997 Ссылка на комментарий Поделиться на другие сайты More sharing options...
dmandreev Опубликовано 25 октября, 2008 Жалоба Share Опубликовано 25 октября, 2008 1) Обьекты которые хотелось бы использовать в VFP9 должны быть с атрибутом [ComVisible=true] 2) Затем скомпилированную .NET сборку нужно зарегистрировать так чтобы она стала видна подсистеме COM REGASM somenetassembly.dll /tlb:somenetassembly.tlb /codebase Параметр /codebase нужно использовать если .net сборка не была помещена в GAC. ПОсле этого все COMVisible функции/обьекты этой сборки будут видны подсистеме COM и их можно будет вызывать хоть из c++ хоть из Visual Basic 6.0 и хоть из VFP 9 Например так: oObj = CreateObject("somenetassembly.SomeClass") With oObj .SomeProperty = "helloworld" .DoSomeFunct() EndWith Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 25 октября, 2008 Автор Жалоба Share Опубликовано 25 октября, 2008 dmandreev Спасибо, попробую Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 25 октября, 2008 Автор Жалоба Share Опубликовано 25 октября, 2008 dmandreev Как и было рекомендовано, делал нижеследующие: REGASM convertlib.dll /tlb:convertlib.tlb /codebase Параметр /codebase нужно использовать если .net сборка не была помещена в GAC. Выдает ошибку: RegAsm error: Failed to load 'E:\Documents and Settings\Bulat\Мои документы\ConvertLib\ConvertLib\bin\Debug\convertlib.dll' because it i s not a valid .NET assembly Пробывал и без /codebase, результат такой же. Установлен Visual Studio 2005 с Microsoft .NET Framework 2.0. ComVisible=true тоже поставил. В чем траблы? Ссылка на комментарий Поделиться на другие сайты More sharing options...
dmandreev Опубликовано 25 октября, 2008 Жалоба Share Опубликовано 25 октября, 2008 dmandreev Как и было рекомендовано, делал нижеследующие: REGASM convertlib.dll /tlb:convertlib.tlb /codebase Параметр /codebase нужно использовать если .net сборка не была помещена в GAC. Выдает ошибку: RegAsm error: Failed to load 'E:\Documents and Settings\Bulat\Мои документы\ConvertLib\ConvertLib\bin\Debug\convertlib.dll' because it i s not a valid .NET assembly Пробывал и без /codebase, результат такой же. Установлен Visual Studio 2005 с Microsoft .NET Framework 2.0. ComVisible=true тоже поставил. В чем траблы? Возможно там какие нибудь references. Но это просто так в переписке не разрулить. Вопрос просто такой - у тебя convertlib на много сторонних библиотек референсы имеет? Они сильно раскиданы по диску? Или решение на "удачу" Попробуй запустить regasm точно из пути для конкретно той версии под которую компилируешь, например C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 25 октября, 2008 Автор Жалоба Share Опубликовано 25 октября, 2008 dmandreev Или решение на "удачу" Попробуй запустить regasm точно из пути для конкретно той версии под которую компилируешь, например C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe ------------------------------------------- Попробывал, переместил свою dll-ку в E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 и вот что у меня вышло с параметром /codebse: E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>REGASM convertlib.dll /tlb:convert lib.tlb /codeb Microsoft ® .NET Framework Assembly Registration Utility 2.0.50727.42 Copyright © Microsoft Corporation 1998-2004. All rights reserved. RegAsm : warning RA0000 : Registering an unsigned assembly with /codebase can ca use your assembly to interfere with other applications that may be installed on the same computer. The /codebase switch is intended to be used only with signed assemblies. Please give your assembly a strong name and re-register it. Types registered successfully Assembly exported to 'E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\convertlib.t lb', and the type library was registered successfully А вот что без /codebase E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>REGASM convertlib.dll /tlb:convertlib.tlb Microsoft ® .NET Framework Assembly Registration Utility 2.0.50727.42 Copyright © Microsoft Corporation 1998-2004. All rights reserved. Types registered successfully Assembly exported to 'E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\convertlib.tlb', and the type library was registered successfully Это значит что все прошло гладко? Во втором случае вроду все прошло успешно Да и еще у меня три Framework-а(версий 1.0, 1.1 и 2.0) установленно, выходит что 2.0 не используется системой по умолчанию? Как сделать чтоб по умолчанию у меня был Framework 2.0 =================== references которые я использую в convertlib: 1. System 2. System.Data 3. System.Xml Ссылка на комментарий Поделиться на другие сайты More sharing options...
dmandreev Опубликовано 25 октября, 2008 Жалоба Share Опубликовано 25 октября, 2008 Да все почти нормально. В системе два каталога в которых лежат regasm.exe для .net framework 1.1 и 2.0. Это не значит что 2.0 "используется по умолчанию", это значит что на твоей машине в переменной %PATH% путь торчит к каталогу с утилитами для .net framework 1.1 regasm.exe который для версии 1.1 при попытке им зарегить сборку для 2.0 будет генерить сообщение об ошибке. Кстати зря ты копируешь свою dll в тот каталог Тебе надо было в коммандлайне выполнить так: "E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm.exe" "E:\Documents and Settings\Bulat\Мои документы\ConvertLib\ConvertLib\bin\Debug\convertlib.dll" ... Параметр codebase нужен для ресолва дополнительных сборок, что в твоем случае не обязательно, у тебя ссылки только на системные. Почитай что нибудь про GAC и Strong name conventions. Кстати с 28 октября будет доступен русский MSDN Library Ссылка на комментарий Поделиться на другие сайты More sharing options...
Дос Опубликовано 25 октября, 2008 Автор Жалоба Share Опубликовано 25 октября, 2008 dmandreev Благодарю за помощь, ты очень помог, спасибо большое Ссылка на комментарий Поделиться на другие сайты More sharing options...
dmandreev Опубликовано 26 октября, 2008 Жалоба Share Опубликовано 26 октября, 2008 Официальный перевод? К 2008 студии будет? Ну да. Полный перевод Visual Studio Team Suite 2008 и Team Foundation Server 2008 и полный перевод MSDN Library. Последнее на мой взгляд вообще чума. Ссылка на комментарий Поделиться на другие сайты More sharing options...
MpakV Опубликовано 27 октября, 2008 Жалоба Share Опубликовано 27 октября, 2008 Вроде обещали не машинный перевод... Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Заархивировано
Эта тема находится в архиве и закрыта для дальнейших ответов.