ObjectARX
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to check if .net file load in cad using arx

7 REPLIES 7
SOLVED
Reply
Message 1 of 8
lot231
717 Views, 7 Replies

How to check if .net file load in cad using arx

* Procedure
1. Run AutoCAD.
2. Load the .net file using arx.

CString Dll_Path = _T("(command \"netload\"\"") + Dll_Path + _T("\")") + _T("(princ)");
ads_queueexpr(Dll_Path);


3. Load another arx. (ZD_File.dll)
-. arx code:

HANDLE zd_fileLoad;
zd_fileLoad = GetModuleHandle(L"ZD_File");
acutPrintf(L"\nhandle : %x\n", zd_fileLoad);
if (!zd_fileLoad) acutPrintf(L"\nZD_File.dll Fail\n");
else acutPrintf(L"\nhandle : %x\n", zd_fileLoad);

 

* Result
handle : 0
ZD_File.dll Fail

 

* Expected results
handle : xxxx (must have a handle value)

7 REPLIES 7
Message 2 of 8
Alexander.Rivilis
in reply to: lot231

In order to load dll-file in AutoCAD you can use another method:

zd_fileLoad = LoadLibraryW(L"ZD_File.dll");

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 3 of 8
lot231
in reply to: Alexander.Rivilis

I'm trying to check for a .net dll file that is already loaded.

 

zd_fileLoad = LoadLibraryW(L"ZD_File.dll");

 

The code above seems to be a function that loads a dll file.

Message 4 of 8
Alexander.Rivilis
in reply to: lot231

HANDLE zd_fileLoad = GetModuleHandle(L"ZD_File");
if (zd_fileLoad == NULL) 
{
  zd_fileLoad = LoadLibraryW(L"ZD_File.dll");
}

What about such code?

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 5 of 8

By the way in order to load .NET dll-file in AutoCAD you can use function:

 

Acad::ErrorStatus __cdecl LoadManagedDll(ACHAR const *dllpath);

 

It is the same as _NETLOAD command. You have to link with acdbmgd.lib

Also undocumented function can help you check loaded or no .NET dll-file:

bool __cdecl ExtensionLoader_IsLoaded(ACHAR const * dllpath);

 

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 6 of 8
lot231
in reply to: lot231

Thanks~~~

 

 

bool __cdecl ExtensionLoader_IsLoaded ( ACHAR const  * dllpath ) ;

 

 

Because of this function, I was able to check whether the dll file was preloaded.
Is this function using the process function?

Message 7 of 8
Alexander.Rivilis
in reply to: lot231


@lot231 wrote:


Is this function using the process function?


I did not understood this question. And as far as this function undocumented  I can not say algorithm of this function.

Відповідь корисна? Клікніть на "ВПОДОБАЙКУ" цім повідомленням! | Do you find the posts helpful? "LIKE" these posts!
Находите сообщения полезными? Поставьте "НРАВИТСЯ" этим сообщениям!
На ваше запитання відповіли? Натисніть кнопку "ПРИЙНЯТИ РІШЕННЯ" | Have your question been answered successfully? Click "ACCEPT SOLUTION" button.
На ваш вопрос успешно ответили? Нажмите кнопку "УТВЕРДИТЬ РЕШЕНИЕ"


Alexander Rivilis / Александр Ривилис / Олександр Рівіліс
Programmer & Teacher & Helper / Программист - Учитель - Помощник / Програміст - вчитель - помічник
Facebook | Twitter | LinkedIn
Expert Elite Member

Message 8 of 8
lot231
in reply to: Alexander.Rivilis

bool __cdecl ExtensionLoader_IsLoaded(ACHAR const * dllpath);

 

This function doesn't seem to work for autocad2023 only. Please check. (2021~2022 Fine)

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Forma Design Contest


AutoCAD Beta