# What platform to use for Plugins?

**URL:** <https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104>\
**Category:** Help & Support\
**Tags:** plugin-development\
**Created:** [October 12, 2024, 3:14am UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104 "2024-10-12T03:14:24Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jc508](https://resource.dopus.com/letter_avatar_proxy/v4/letter/j/a6a055/32.png) [@jc508](https://resource.dopus.com/u/jc508)\
**Post date:** [October 12, 2024, 3:14am UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/1 "2024-10-12T03:14:24Z")

</div>

Hi,  
As part of my evaluation of Directory Opus (which looks sooooo promising) I am getting started on understanding plugins and what they could do for me.  
I thought to start I would just compile the 'rar\_sample\_vfs\_plugin'. Well always try the lucky, easy, way first; looks like I am out of luck today ☹  
Could you please advise what development platform is good to use? And any fancy settings needed.  
The `rar.rc` file says it was generated by 'Microsoft Visual C++' so I thought to throw it at that products sucessor 'Visual Studio' and my installed version is 2022  
With only the 'Desktop Development with C++' workload.

Well, 190 errors and 31 warning later it not going to work Out-Of-The-Box  
As there is no project or solution file in the downloaded reasouces I suspect you are not using VS

The errors are mostly

```auto
"cannot convert from 'LPWSTR' to 'LPSTR'	"
"argument of type "LPWSTR" (aka "wchar_t *") is incompatible with parameter of type "LPSTR" (aka "char *")

```

but one` "'DWL_USER': undeclared identifier	"` suggests a missing component of some type.

Please point me in the right direction.  
Thanks  
JC

---

<div class="post-metadata">

**Author:** ![Leo](https://resource.dopus.com/user_avatar/resource.dopus.com/leo/32/69732_2.png) [@Leo](https://resource.dopus.com/u/Leo)\
**Post date:** [October 12, 2024, 3:30pm UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/2 "2024-10-12T15:30:00Z")

</div>

Use Visual Studio, and make sure the project is set to _Use Unicode Character Set_ under Properties / Configuration Properties / Advanced for the DLL file.

---

<div class="post-metadata">

**Author:** ![jc508](https://resource.dopus.com/letter_avatar_proxy/v4/letter/j/a6a055/32.png) [@jc508](https://resource.dopus.com/u/jc508)\
**Post date:** [October 19, 2024, 4:39am UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/3 "2024-10-19T04:39:05Z")

</div>

Leo,  
Thanks for this input - sorry for the delayed response but I guess you know how 'other-things' can get in the road of a project.  
Anyway I also needed to add **"C++ MFC for latest v143 build Tools (x86 & x64)"**  
Now it is complaining  
`Error	LNK2028	unresolved token (0A000151) "extern "C" wchar_t * __cdecl PathFindNextComponentW(wchar_t const *)"`  
then ditto for **PathAppendW** , **PathRemoveFileSpecW** and **PathFindFileNameW**  
followed by the same set but error "Error LNK2019 unresolved external symbol"

I am sorry but I haven't touched C++ for over 25 years and have recently been using .NET which seems to have a very different 'framework' structure.  
In short I am having trouble turning my head around to what this might be missing.  
Also I see the 'Rar plugin' code is over 15 years old; so anything I install/import today could easily be incompatible with the past.  
Could you please 'hum-a-few-bars' of the environment this great app is developed in, with what base library sets etc, so maybe I can stop bothering you at every step.

Thanks  
JC

---

<div class="post-metadata">

**Author:** ![Jon](https://resource.dopus.com/user_avatar/resource.dopus.com/jon/32/12713_2.png) [@Jon](https://resource.dopus.com/u/Jon)\
**Post date:** [October 19, 2024, 5:44am UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/4 "2024-10-19T05:44:24Z")

</div>

> <https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-symbol-error-and-how-do-i-fix>

---

<div class="post-metadata">

**Author:** ![jc508](https://resource.dopus.com/letter_avatar_proxy/v4/letter/j/a6a055/32.png) [@jc508](https://resource.dopus.com/u/jc508)\
**Post date:** [October 19, 2024, 10:39pm UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/5 "2024-10-19T22:39:52Z")

</div>

Jon,  
I am aware of what the error means.  
My point is that I am trying to compile the sample code in opus\_sdk.zip from [Download Resources - Directory Opus Self-Service Support](https://support.gpsoft.com.au/resources)  
This is completely untouched by me - just OOB this does not compile.  
My question is what environment is needed to get it compile. What libraries are you assuming are installed?  
JC

---

<div class="post-metadata">

**Author:** ![Leo](https://resource.dopus.com/user_avatar/resource.dopus.com/leo/32/69732_2.png) [@Leo](https://resource.dopus.com/u/Leo)\
**Post date:** [October 20, 2024, 12:40am UTC](https://resource.dopus.com/t/what-platform-to-use-for-plugins/53104/6 "2024-10-20T00:40:03Z")

</div>

That's a Windows API. Microsoft's API docs usually tell you the .lib file required at the bottom of each page:

> **[PathFindNextComponentW function (shlwapi.h) - Win32 apps](https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindnextcomponentw)**
>
> Parses a path and returns the portion of that path that follows the first backslash. (Unicode)
