3ds Max Programming
Welcome to Autodesk’s 3ds Max Forums. Share your knowledge, ask questions, and explore popular 3ds Max SDK, Maxscript and Python topics.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Search instead for
Did you mean:
-
Back to forum -
Previous -
Next
1392 Views, 1 Reply
12-03-2018
02:01 AM
Error code 127
I am compiling my own plugin for 3dsMax 2018 using Visual Studio 2017. The plugin uses some other DLLs. I used the information here to find out what DLLs were missing or needed updating, and now I’m seeing «Error code 127 — The specified procedure could not be found». Launching from Visual Studio, the output shows it loading my plugin and the DLLs, then «Exception thrown at 0x00007FF95B0B99B8 (ntdll.dll) in 3dsmax.exe: 0xC0000139: Entry Point Not Found.» After that everything is unloaded.
Is there a way to get more detail on what’s going wrong? I think one of the DLLs is failing to load, but using the Process Monitor doesn’t give any clues.
- 127
- dll
- plugin
-
Back to forum -
Previous -
Next
1 REPLY 1
12-03-2018
06:05 AM
Recompiling every available DLL seems to have fixed this issue. I’ve got some scripting errors to work through but at least it loads!
-
Back to forum -
Previous -
Next
2012.04.09 09:04
Большая просьба привести простейший пример функции написанной на С# для обращения к ней с мт4 ……….. Передать значения а и б в функцию с шарп и вернуть результат в мт4
в статье https://www.mql5.com/ru/articles/249 компилированная dll автора работает и в мт4 и в мт5 исправно!
но когда я пытаюсь создать свою компилированную DLL с исходников автора (в VisualStudio 2010) то у меня эта dll не работает(пишет ошибка 127)
все версии .NET установлены
// код C#
using System;
using System.Text;
using RGiesecke.DllExport;
using System.Runtime.InteropServices;
namespace TEST
{
class TEST
{
[DllExport(«Add», CallingConvention = CallingConvention.StdCall)]
public static int Add(int left, int right)
{
return left + right;
}
}
}
namespace RGiesecke.DllExport
{
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
partial class DllExportAttribute : Attribute
{
public DllExportAttribute()
{
}
public DllExportAttribute(string exportName)
: this(exportName, CallingConvention.StdCall)
{
}
public DllExportAttribute(string exportName, CallingConvention callingConvention)
{
ExportName = exportName;
CallingConvention = callingConvention;
}
public CallingConvention CallingConvention { get; set; }
public string ExportName { get; set; }
}
}
// код МТ4
//+——————————————————————+
#import «TEST.dll»
int Add(int a,int b);
#import
void start()
{
Comment(Add(3,2));
}
//+——————————————————————+
В чем ошибка?
- Обсуждение статьи «Как открыть мир C# из MQL5 путем экспорта неуправляемого кода»
- Как побороть ошибку Cannot find ‘Add’ in ‘Test1.dll’ ?
- Создание собственного расширения MetaTrader (dll)
2012.04.11 11:23
#2
кто знает куда и как вставляются шаблоны в с шарпе, причина видимо только в этом
и как шаблон задействовать
<VSTemplate Version=»3.0.0″ xmlns=»http://schemas.microsoft.com/developer/vstemplate/2005″ Type=»Project»>
<TemplateData>
<Name>Testme</Name>
<Description><No description available></Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>Testme</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName=»Testme.csproj» File=»Testme.csproj» ReplaceParameters=»true»>
<Folder Name=»DllExport» TargetFolderName=»DllExport»>
<ProjectItem ReplaceParameters=»true» TargetFileName=»DllExportAttribute.cs»>DllExportAttribute.cs</ProjectItem>
</Folder>
<Folder Name=»Properties» TargetFolderName=»Properties»>
<ProjectItem ReplaceParameters=»true» TargetFileName=»AssemblyInfo.cs»>AssemblyInfo.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters=»true» TargetFileName=»UnmanagedExports.cs»>UnmanagedExports.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
2012.04.12 05:23
#3
нашел решение подробно описанное http://habrahabr.ru/post/137300/
пишем классик с нужными функциями. далее его вскрываем и подправляем код IL. и опять компилируем.
полученная длл должна по идее работать но увы
опять выдает ошибку 127.
2012.04.12 05:30
#4
Количество ответов от других участников по теме показывает насколько распространен C# среди них.
Походу вы единственный, кто им занимается на форуме.
Назначаем вас C# гуру форума
PS.
На 127 ошибку обычно в проекте С++ не хватает def файла.
Если в C# есть такой похожий файл, то найдите и добавьте в него список функций. по аналогии.
2012.04.12 05:43
#5
panelektrik:
кто знает куда и как вставляются шаблоны в с шарпе, причина видимо только в этом
и как шаблон задействовать
разобрался в шаблонах, шаблон необходимо вставить в папку C:Documents and SettingsAdminМои документыVisual Studio 2010TemplatesProjectTemplates, после этого при создании нового проекта появляется возможность его прменения. но увы многочисленные попытки не дали результата. всегда компилированная длл выдает ошибку 127
2012.04.12 05:47
#6
sergeev:
Количество ответов от других участников по теме показывает насколько распространен C# среди них.
Походу вы единственный, кто им занимается на форуме.
Назначаем вас C# гуру форума
PS.
На 127 ошибку обычно в проекте С++ не хватает def файла.
Если в C# есть такой похожий файл, то найдите и добавьте в него список функций. по аналогии.
спасибо за ответ. думаю эта тема полезна программистам! просто те программисты которые используют еще и C# редко заходят на форум
кстати язык с шарп очень схож с mql, если решить проблему связки длл с мт4(простая и подробная инструкция) то думаю многие смогут зашивать свои алгоритмы в dll на с шарпе.
2012.04.12 05:47
#7
Да напишите вы эту сумму на С++.
Быстрее результат будет.
2012.04.12 06:00
#8
panelektrik:
спасибо за ответ. думаю эта тема полезна программистам! просто те программисты которые используют еще и C# редко заходят на форум
похоже таковых — только вы и еще MetaDriver.
кстати язык с шарп очень схож с mql, если решить проблему связки длл с мт4(простая и подробная инструкция) то думаю многие смогут зашивать свои алгоритмы в dll на с шарпе.
неверной дорогой идете товарищи. Добрый совет — учить С++.
так как вы вскоре перейдете на MQL5, а он родимый не на С#, а на C++ идет.
Не теряйте время.
2012.04.12 08:53
#9
sergeev:
похоже таковых — только вы и еще MetaDriver.
неверной дорогой идете товарищи. Добрый совет — учить С++.
так как вы вскоре перейдете на MQL5, а он родимый не на С#, а на C++ идет.
Не теряйте время.
Шарп нынче в моде.
Друг кури http://pitforex.com/index.php?topic=916.0 тут все пошагово расписано, а хабровский и у меня 127 показывает
tasik 0 / 0 / 0 Регистрация: 27.12.2012 Сообщений: 52 |
||||||||
1 |
||||||||
05.05.2015, 09:51. Показов 4643. Ответов 4 Метки нет (Все метки)
dll
и код где вызывается
__________________
0 |
Ушел с форума 16454 / 7418 / 1186 Регистрация: 02.05.2013 Сообщений: 11,617 Записей в блоге: 1 |
|
05.05.2015, 10:07 |
2 |
В LoadLibrary пишите полный путь к dll. Добавлено через 2 минуты
0 |
0 / 0 / 0 Регистрация: 27.12.2012 Сообщений: 52 |
|
05.05.2015, 10:35 [ТС] |
3 |
dll грузит, ошибка при вызове функции __declspec(dllexport) LRESULT CALLBACK HookProc(int iCode, WPARAM wParam, LPARAM lParam), не могу получить адрес HOOKPROC hpHookProc = (HOOKPROC)GetProcAddress((HINSTANCE)hHookDll, «HookProc»), может я не правильно вызываю или создал в библиотеке функцию
0 |
Убежденный Ушел с форума 16454 / 7418 / 1186 Регистрация: 02.05.2013 Сообщений: 11,617 Записей в блоге: 1 |
||||||||||||
05.05.2015, 11:29 |
4 |
|||||||||||
Воспользуйтесь утилитой dumpbin (есть в Windows SDK / Visual Studio),
Далее ищите в полученном файле информацию об именах экспортируемых функций.
Так еще попробуйте:
1 |
0 / 0 / 0 Регистрация: 27.12.2012 Сообщений: 52 |
|
05.05.2015, 12:29 [ТС] |
5 |
Спасибо Убежденный за помощь!
0 |