powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / указанная служба не установлена
39 сообщений из 39, показаны все 2 страниц
указанная служба не установлена
    #38852765
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
службу устанавливал батником

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe C:\Srvc_MOF_Slime_Total_Production\Srvc_MOF_Slime_Total_Production\bin\Debug\Srvc_MOF_Slime_Total_Production.exe
pause

пытаюсь батником ее перезапустить

net stop "ServiceMOFSlimeTotal";
sc start "ServiceMOFSlimeTotal";
pause

остановить он её может. а вот запустить уже нет. как решить?

net start не работает
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852877
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnitостановить он её может. а вот запустить уже нет. как решить?
У любого NT Service есть DACL -таблица где расписаны права для пользователей/ групп пользователей
(также как и для файлов/папок и для ключей реестра)
Скорее всего у текущего пользователя отсутствует право SERVICE_START.
Проверь под админом.
DoomUnitкак решить?
Либо под админом запускать (хотя в общем случае у него тоже может не быть прав).
Если для штатного пользователя, я даже не знаю как это ручками делается, скорее всего есть какая-то утилита, кот. надо запускать под админом.
Если по документации MSDN-Windows, то типа так (чтоб представлял сложность задачи):
Ниже пример кода API-VB6, в .Net я это еще не разбирал:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
      'права запуска/остановки для любого пользователя
      DoAccessNTService "Имя_службы", GENERIC_READ Or GENERIC_EXECUTE

Public Const GENERIC_ALL = &H10000000
'для SE_SERVICE это в частности дает право не только запускать/останавливать, но и удалять сервис

Public Const GENERIC_READ = &H80000000
'для SE_SERVICE это означает:
' STANDARD_RIGHTS_READ
' SERVICE_QUERY_CONFIG
' SERVICE_QUERY_STATUS
' SERVICE_INTERROGATE
' SERVICE_ENUMERATE_DEPENDENTS

Public Const GENERIC_EXECUTE = &H20000000
'для SE_SERVICE это означает:
' STANDARD_RIGHTS_EXECUTE
' SERVICE_START
' SERVICE_STOP
' SERVICE_PAUSE_CONTINUE
' SERVICE_USER_DEFINED_CONTROL

Public Const SERVICE_START = &H10&
Public Const SERVICE_STOP = &H20&


Public Function DoAccessNTService(ServiceName As String, dwAccessRights As Long) As Long
  DoAccessNTService = AddAceToObjectsSecurityDescriptor(ServiceName, _
   SE_SERVICE, _
   ConstructUniversalAndNTWellKnownSids("Users"), _
   dwAccessRights, _
   GRANT_ACCESS, _
   NO_INHERITANCE)
  If DoAccessNTService <> ERROR_SUCCESS Then
    AddLog "  Calling AddAceToObjectsSecurityDescriptor... Failed. Error code: " & RaiseAPIErrorByNumber(DoAccessNTService)
  Else
    AddLog "  Calling AddAceToObjectsSecurityDescriptor... Done."
  End If
End Function


Public Function AddAceToObjectsSecurityDescriptor(pszObjName As String, _
 ObjectType As SE_OBJECT_TYPE, pszTrustee As String, _
 dwAccessRights As Long, AccessMode As ACCESS_MODE, dwInheritance As Long) As Long
'DWORD AddAceToObjectsSecurityDescriptor (
'    LPTSTR pszObjName,          ' name of object
'    SE_OBJECT_TYPE ObjectType,  ' type of object
'    LPTSTR pszTrustee,          ' trustee for new ACE
'    TRUSTEE_FORM TrusteeForm,   ' format of trustee structure -<&#237;&#229; &#237;&#224;&#228;&#238;
'    DWORD dwAccessRights,       ' access mask for new ACE
'    ACCESS_MODE AccessMode,     ' type of ACE
'    DWORD dwInheritance         ' inheritance flags for new ACE
')
 
  Dim dwRes As Long
  Dim pOldDACL As Long, pNewDACL As Long
  Dim pSD As Long
  Dim ea As EXPLICIT_ACCESS
 
  If (pszObjName = "") Then
    AddAceToObjectsSecurityDescriptor = ERROR_INVALID_PARAMETER
    Exit Function
  End If
  
  'Get a pointer to the existing DACL.
  dwRes = GetNamedSecurityInfo(pszObjName, ObjectType, _
   DACL_SECURITY_INFORMATION, _
   0&, 0&, pOldDACL, 0&, pSD)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling GetNamedSecurityInfo... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "GetNamedSecurityInfo Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling GetNamedSecurityInfo... Done."
  End If
  
  'Initialize an EXPLICIT_ACCESS structure for the new ACE.
  BuildExplicitAccessWithName ea, pszTrustee, dwAccessRights, AccessMode, dwInheritance
  
  ' Create a new ACL that merges the new ACE into the existing DACL.
  dwRes = SetEntriesInAcl(1, ea, pOldDACL, pNewDACL)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling SetEntriesInAcl... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "SetEntriesInAcl Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling SetEntriesInAcl... Done."
  End If

  'Attach the new ACL as the object's DACL.
  dwRes = SetNamedSecurityInfo(pszObjName, ObjectType, _
   DACL_SECURITY_INFORMATION, _
   0&, 0&, pNewDACL, 0&)
  If dwRes <> ERROR_SUCCESS Then
    AddLog "    Calling SetNamedSecurityInfo... Failed. Error code: " & RaiseAPIErrorByNumber(dwRes)
    'MsgBox "SetNamedSecurityInfo Error " & CStr(dwRes)
    GoTo Cleanup
  Else
    AddLog "    Calling SetNamedSecurityInfo... Done."
  End If

Cleanup:
  If pSD <> 0 Then LocalFree pSD
  If pNewDACL <> 0 Then LocalFree pNewDACL
  
  AddAceToObjectsSecurityDescriptor = dwRes
End Function



Есть ли в .Net соответствующие классы для Service, и насколько они неглючные/удобные я еще не выяснял.
Задача кстати на очереди в ближайшие дни.
Ты б выяснил "на пальцах" хоть как-то сначала что у тебя не хватает (кто владелец сервиса, какие у кого права, под каким аккаунтом запускаешь).
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852892
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин я уже с таким сталкивался (я про рестарт). там работало на ура.
но есть нюанс - там я использовал установочник visual studio. и батник лежал в папке с программой (в программ файлс).
а тут я примонтировал сервис силами InstallUtil.
кст система - WinServer 2003. сама служба запущена от локальной системы.
а про права - если бы прав текущему пользователю не хватало (сижу под админом), то ему бы не хватало прави остановить сервис. а ошибка видать от того что сервис нужно стандарными средствами ставить и батник ему в папку кидать.
еще видел способ с использованием sc create. но это уж совсем для отмороженных
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852895
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так опять же службу же видно в службах. нужно как то путь указать
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852898
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не только на мою службу алергия
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852911
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млин из командной строки все ок
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852975
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,

>а про права - если бы прав текущему пользователю не хватало (сижу под админом), то ему бы не хватало прави остановить сервис.

Вообще-то SERVICE_START и SERVICE_STOP - это разные права доступа, твое утверждение в общем случае неверно.
И если ты админ, это еще в общем случае не значит, что у тебя есть права на что-то. Владельцем объекта может быть напр. TrastedInstaller, а у админа при этом права только на чтение.

>для отмороженных
Ну, либо ты себя морозишь и разбираешься со всеми ньюансами, хотя бы применительно к твоей задаче, либо ты смотришь глазами недоуменного пользователя и плюешься.

Я тебе совет дал: найди любой способ посмотреть права на объект. К сожалению сделать это как с файлами и папками через свойства - безопасность нельзя.

Ну, м.б. у тебя какой другой глюк, кто его знает. Но я бы не принебрег проверкой прав.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38852987
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда есть ли разница прав у командной строки и батника?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853006
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

кстати есть одна фича веселая :) для службы можно задать пустые права, то есть права доступа для изменения прав службы и прочего не будет ни у кого, даже у систем. Вернуть обратно штатными средствами я так и не понял как. Можно только сбросить ACL для всех служб по умолчанию.
сбрасывал через subinacl /perm с соответствующим ключам и именем службы, по крайней мере так было в XP =) и 7
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853007
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,
зависит из какого "окружения" они были запущены и с какими права.
если ты запустил просто батник и запустил командную стоку с повешенными правами это имеет существенную разницу :)
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853012
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
net stop "ServiceMOFSlimeTotal"
net start "ServiceMOFSlimeTotal"
pause


без точек с запятой
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853123
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DoomUnit,

по поводу как посмотреть-поменять права вот наверно разжевано:
Раздаем права на запуск/остановку сервисов под Windows

вообще ощущение, что в чем-то другом проблема. Когда нет прав, увидишь следующее:
Системная ошибка 5.
Отказано в доступе.

И никакого Start_Pending не увидишь.

Че-то ты глючное поставил, что запуститься никак не может.

>net stop "ServiceMOFSlimeTotal";
>sc start "ServiceMOFSlimeTotal";

А че за манера использовать две разные утилиты, когда одной достаточно. Хотя на результат не влияет.

>если ты запустил просто батник и запустил командную стоку с повешенными правами это имеет существенную разницу
Не на 2003-м сервере, когда он сидит на нем с правами администратора.
На Vista - 7-8-8.1, Server 2008-2008R2-2012-2012R2 -да.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853148
DoomUnit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
net stop "ServiceMOFSlimeTotal"
net start "ServiceMOFSlimeTotal"
pause


без точек с запятой
-------------------------
это и есть решение
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853522
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтоб тем не плодить.
Правильно понимаю что в .Net есть


RegistrySecurity Class

FileSecurity Class

Но нету аналога для NT Service?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Enum SE_OBJECT_TYPE
  SE_UNKNOWN_OBJECT_TYPE
  SE_FILE_OBJECT '< - FileSecurity Class 
  SE_SERVICE '< -???
  SE_PRINTER
  SE_REGISTRY_KEY '< - RegistrySecurity Class
  SE_LMSHARE
  SE_KERNEL_OBJECT
  SE_WINDOW_OBJECT
  SE_DS_OBJECT
  SE_DS_OBJECT_ALL
  SE_PROVIDER_DEFINED_OBJECT
  SE_WMIGUID_OBJECT
  SE_REGISTRY_WOW64_32KEY
End Enum
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853541
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаете, Дмитрий, я уже не один год разрабатываю сервисы и вообще пишу на .net, но ваши вопросы ставят меня в тупик. Мне ни разу не приходилось сталкиваться с проблемами, которые вы тут постите на форуме. Ваши темы - это какой-то глоток новизны на этом форуме. Не то, чтобы сильно полезной и актуальной, но новизны - это точно :-)

По сабжу: если речь идет о самописной службе, а не чужой, проще написать экзешник, который умеет сам себя инсталлировать и деинсталлировать, а под кем запускаться - решается установкой соответствующих свойств в инсталлерах (ServiceInstaller, ServiceProcessInstaller) - 11611062 . Главное - чтобы пользователь, который запускает экзешник, имел право на

А управлять службами можно с помощью ServiceController
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853600
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

>если речь идет о самописной службе, а не чужой
считайте что чужой -произвольной уже установленной в системе -назовем ее так

>А управлять службами можно с помощью ServiceController
Start/Stop -да, если есть права

А я спрашиваю как раз о правах, т.е. об объектах безопасности.

В API как раз с этим проще - т.е. модель универсальна, а различия только в типах объектов.
SE_OBJECT_TYPE enumeration
А модель универсальна.

В .Net есть отдельные классы-обертки (для отдельно взятого типа объекта):
RegistrySecurity Class
FileSecurity Class

А вот ServiceSecurity Class что-то я не вижу, про него и был вопрос.
Но видимо такого нет, иначе б был здесь:
System.Security.AccessControl Namespace

Хотя вижу какие-то общие ObjectSecurity и CommonObjectSecurity но скорее всего это не то.

В принципе вопрос можно снимать.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853609
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77>если речь идет о самописной службе, а не чужой
считайте что чужой -произвольной уже установленной в системе -назовем ее так

>А управлять службами можно с помощью ServiceController
Start/Stop -да, если есть права
Я бы начал копать в сторону запуска процессов от имени другого пользователя с гарантированно имеющимися правами, например:
ShellExecute(this.Handle, "open", "cmd.exe", @"/k runas /netonly /user:sed@ateks.local /"net start service1"/", null,1); (не мое, и при копировании мог с кавычками накосячить)

или через CreateProcessAsUser
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853610
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя...

NativeObjectSecurity Class

ResourceType Enumeration

Members
Service A Windows service.

Надо попробовать.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853612
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

ну мы о разных вещах говорим.
Вы предлагаете делать старт от имени другого пользователя (администратора, например).
А я например хочу проверить, может ли данный пользователь ("user") делать этот самый старт сервиса.
Или скажем дать этому "user" это самое право.
Не понимаете?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853618
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Arm79, ну мы о разных вещах говорим. Вы предлагаете делать старт от имени другого пользователя (администратора, например). А я например хочу проверить, может ли данный пользователь ("user") делать этот самый старт сервиса. Или скажем дать этому "user" это самое право. Не понимаете? Почему не понимаю, все норм. Вопрос только в том, что .net это приклад, и нет смысла делать с его помощью системные и админские штучки
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853623
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

>net это приклад, и нет смысла делать
ну зачем эти отмазки

нашел же..
17112967

чего рассуждать, будем пробовать по делу
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853676
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Хотя...

NativeObjectSecurity Class

ResourceType Enumeration

Members
Service A Windows service.

Надо попробовать.

Если я правильно понял, то готового класса нету,
Inheritance HierarchySystem.Object
_ System.Security.AccessControl.ObjectSecurity
_ _ System.Security.AccessControl.CommonObjectSecurity
_ _ _ System.Security.AccessControl.NativeObjectSecurity
_ _ _ _ System.IO.Pipes.PipeSecurity
_ _ _ _ System.Security.AccessControl.CryptoKeySecurity
_ _ _ _ System.Security.AccessControl.EventWaitHandleSecurity
_ _ _ _ System.Security.AccessControl.FileSystemSecurity
_ _ _ _ System.Security.AccessControl.MutexSecurity
_ _ _ _ System.Security.AccessControl.ObjectSecurity(Of T)
_ _ _ _ System.Security.AccessControl.RegistrySecurity
_ _ _ _ System.Security.AccessControl.SemaphoreSecurity а я должен писать свой:
Код: vbnet
1.
2.
3.
  Public Class ServiceSecurity
    Inherits NativeObjectSecurity
...



По аналогии с готовыми
RegistrySecurity Class
FileSecurity Class

Так?

Если да, то как это делается? Опыта нет и рука не набита.
Где посмотреть исходники RegistrySecurity/FileSecurity
Если можно подскажите на VB.Net а не на C#, синтаксис таки отличается.

Ну если есть желание помогать осваивать ваш язык.
Если опять тупые дискуссии не по теме, забиваем и оставляю это на API чтоб не тратить время.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853678
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Если я правильно понял, то готового класса нету,
пичалька....
а windows.h почему-то всё есть
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853681
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Где посмотреть исходники RegistrySecurity/FileSecurity
1) Можно дизассембляторами, например http://www.devextras.com/decompiler/
2) Куча исходников .net выложена самим майкрософтом в и-нете, но там на шарпе: http://referencesource.microsoft.com/#mscorlib/system/security/accesscontrol/filesecurity.cs,52b99e3f0aeeb82d
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853691
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилпичалька....
а windows.h почему-то всё есть
А причем тут windows.h?
Ты мне на .Net разжуй то что я спросил.
Или нафига тут сидишь и язвишь с советами что C++ лучше? Вот именно на этом форуме?
Через API я тебе сам в 2 щелчка это сделаю и без C++.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853692
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Ты мне на .Net разжуй то что я спросил.

Сколько раз можно повторять - неверно выбран инструмент
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853699
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилДмитрий77Ты мне на .Net разжуй то что я спросил.

Сколько раз можно повторять - неверно выбран инструмент
Я не спрашиваю что мне выбирать - молоток или кувалдометр.
Я спрашиваю как работает кувалдометр.
В данном форуме обсуждают кувалдометр.
Так яснее?
А молотком я всегда сумею подстучать.

Какое отношение вопрос о написании .Net Inherits -класса имеет к windows.h?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853701
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77А молотком я всегда сумею подстучать.
сомневаюсь
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853708
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm792) Куча исходников .net выложена самим майкрософтом в и-нете, но там на шарпе: http://referencesource.microsoft.com/#mscorlib/system/security/accesscontrol/filesecurity.cs,52b99e3f0aeeb82d Не,тяжеловато. Не буду я этого делать раз они сами недопилили и времени жалко.

Изопропил,

я твоей позиции не понимаю.
С одной стороны в отличии от многих тут ты вроде как согласен с тем что API это хорошо и .Net (как и любая оберточная система) очень многого не покрывает.
То что я не хочу писать API на C++ и прекрасно все это делаю и на VB ты уже наверно понял.
Но только зачем влезать с этими подколами, когда я пытаюсь что-то выяснить у людей (которые многие на Native никогда не писали и далеки от этого) именно по .Net - механизмам.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853712
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

поясняю - попытка завернуть всё в net с какого-то момента становится бессмысленной тратой времени
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853713
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,

>попытка завернуть всё в net
а я и не пытаюсь сильно.

Прикладная часть меня устраивает - не хуже чем VB6. Лучше чем C++.
Возможности что он умеет исследую потихоньку. Много может. Но не все и не всегда хорошо. Оптимальный вариант - комбинировать.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853717
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Оптимальный вариант - комбинировать.
да. И аккуратно разделить, а не воевать c P/Invoke
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853731
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Изопропил,

>попытка завернуть всё в net
а я и не пытаюсь сильно.

Прикладная часть меня устраивает - не хуже чем VB6. Лучше чем C++.
Возможности что он умеет исследую потихоньку. Много может. Но не все и не всегда хорошо. Оптимальный вариант - комбинировать.может стоило начать со спецификации и понять, что она рассчитана не только под Windows, следовательно не стоит ожидать полного покрытия его API?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853927
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилДмитрий77Оптимальный вариант - комбинировать.
да. И аккуратно разделить, а не воевать c P/Invoke
Я имел ввиду комбинировать в рамках одного проекта и одного языка.
Писать на API из VB6/.Net -ну, я не чувствую что я с чем то воюю и пишу в общем-то с удовольствием и относительно быстро, особенно когда результаты радуют, а они обычно радую.
Вот в C(++) я бы воевал: со строками, с компилятором из за путаницы в h.-файлах и т.п....

Ты же предлагаешь комбинировать языковую смесь в одном проекте/решении, тут чувствую война и начнется. Нет. И не говори мне про это больше.
У меня есть в проекте C++ -компоненты - в том числе написанные мной, но это отдельные exe-шники или dll -и мешать я это не буду.
Можно конечно писать свои макрофункции из API в C++, делать dll и использовать ее из VB/.Net, но это будут те же API, только свои. А при том что я прекрасно справляюсь с прямыми вызовами оригинальных, это лишний гимор.
У меня в проекте путаницы нет. Все API и макрофункции на их базе в отдельных модулях, и я их подключаю к проекту как "связь".
Ну да, на том же языке на котором проект.

Кстати это ваше слово P/Invoke мне не очень нравится, если заметил то я все декларации делаю в старом VB6 стиле и без злоупотребления квадратными скобками, словами Marshall, UnManage и DllImport благо VB.Net в отличии от C# это позволяет.
Ну единственное, слово Unicode надо не забывать вставлять перед функциями и структурами чтоб строки правильно транслировались.

skyANAне стоит ожидать полного покрытия его API?
Вот ты мне это говоришь как будто я этого еще не понял.

skyANAможет стоило начать со спецификации и понять, что она рассчитана не только под Windows, следовательно ?
Вот к чему это говорить?
Ради интереса.
Много на .Net под линукс написал?
Есть тут хоть один человек который хоть что-то написал на .Net не под Win?
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853935
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Ты же предлагаешь комбинировать языковую смесь в одном проекте/решении
Конечно.
Дмитрий77но это будут те же API, только свои.
Да. Простые и понятные. Можно COM интерфейсы использовать ( в т ч IDispatch) - тогда и декларации свои писать не придётся.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853967
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Есть тут хоть один человек который хоть что-то написал на .Net не под Win?
Да, я :-) Сборщик почты под Mono наваял. С коннектором в MySql, работой с HtmlAgilityPack и парсингом регулярок. Работает :-)

Прога мониторит почту, выискивает новые письма, парсит их содержимое (html форма заказов интернет-магазина) и пишет заказы в БД.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853972
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилДмитрий77Ты же предлагаешь комбинировать языковую смесь в одном проекте/решении
Конечно.
Дмитрий77но это будут те же API, только свои.
Да. Простые и понятные.
Это точно.
Как воткнуть в dll свою API "по образу и подобию"?

Как мне написать API-ф-цию чтоб возвращала строку. (ты там тоже учавствовал)

Но там была крайняя необходимость.

И не забывай еще о том что эти dll в общем случае придется делать в двух вариантах x86 и x64, что добавит гимора,
а Win API все задублированы.
Я вот счас .Net делаю - совместимость x86/x64 я контролирую, но таки склоняюсь к мысли, что все-таки буду использовать Win32(x86) конфигурацию, уж очень много там ньюансов с Any CPU возникнет. + я буду ссылаться как минимум на одну dll, а ее нет возможности сделать x64.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38853974
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,

я просто спросил. Ради интереса.
...
Рейтинг: 0 / 0
указанная служба не установлена
    #38854008
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Arm79,

я просто спросил. Ради интереса.
Так я ни в чем и не обвиняю. Спросил - я ответил. Не могу сказать, что моно поддерживает весь функционал .net, но для прикладных задач пойдет
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / указанная служба не установлена
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]