<div dir="ltr"><div>It was missing the two exports:</div><div>1. destroy_protocol_example_standalone<br></div><div><div>2. init_protocol_example_standalone</div></div><div><br></div><div>It is a configuration issue with the VS project.  After matching project parameters against known good plugin it's working fine.</div><div><br></div><div>It involves a multitude of manual steps after what CMakeLists.txt generates.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Jan 28, 2017 at 12:42 PM, Andy Green <span dir="ltr"><<a href="mailto:andy@warmcat.com" target="_blank">andy@warmcat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
<br>
On 29 January 2017 03:09:34 GMT+08:00, Joel Winarske <<a href="mailto:joel.winarske@gmail.com">joel.winarske@gmail.com</a>> wrote:<br>
>I am attempting to have lwsws load plugin<br>
>protocol_example_standalone.<wbr>dll.<br>
><br>
>I'm seeing:<br>
>[2017/01/28 10:43:10:2640] ERR: Failed to get init on<br>
>protocol_example_standalone.<wbr>dll: The specified procedure could not be<br>
>found.<br>
><br>
>It loads all the other plugins built with libwebsocket without error.<br>
><br>
>Any ideas?<br>
<br>
</span>The names of the exports in the plugin must match the plugin name.<br>
<br>
For example 'plugin_standalone' exports 'init_protocol_example_<wbr>standalone'.<br>
<br>
The other reason I can imagine is maybe no exports or decorated exports from your plugin dll... you need some objdump like tool to check it.<br>
<br>
-Andy<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
>Thanks,<br>
>Joel<br>
><br>
><br>
>Building this plugin on Windows required some fiddling:<br>
><br>
><br>
>*libwebsockets plugin-standalone*<br>
>1. Open VS2015 x86 Native Tools window<br>
>2. cd C:\Users\joel\Documents\<wbr>GitHub\libwebsockets\plugin-<wbr>standalone<br>
>3. mkdir build<br>
>4. cd build<br>
>5.<br>
>C:\Users\joel\Documents\<wbr>GitHub\libwebsockets\plugin-<wbr>standalone\build>cmake<br>
>.. -DLWS_WITH_LWSWS=1<br>
>-DLWS_OPENSSL_INCLUDE_DIRS=C:<wbr>\OpenSSL-Win32\include<br>
>-DLWS_LIBUV_LIBRARIES=C:\<wbr>Users\joel\Documents\GitHub\<wbr>libuv\Debug\lib\libuv.lib<br>
>-DLWS_LIBUV_INCLUDE_DIRS=C:\<wbr>Users\joel\Documents\GitHub\<wbr>libuv\include<br>
><br>
>6. Open the protocol_example_standalone sln file, and update as<br>
>follows:<br>
><br>
>VC++ Directories->Include Directories <append><br>
>C:\Users\joel\Documents\<wbr>GitHub\libuv\include;C:\<wbr>OpenSSL-Win32\include<br>
>VC++ Directories->Library Directories <append><br>
>C:\Users\joel\Documents\<wbr>GitHub\libwebsockets\build\<wbr>lib\Debug;C:\Users\joel\<wbr>Documents\GitHub\libuv\Debug\<wbr>lib<br>
>Linker->Input <append><br>
>websockets.lib;libuv.lib;ws2_<wbr>32.lib;;userenv.lib;psapi.lib;<wbr>iphlpapi.lib<br>
><br>
>7. Build.  you get protocol_example_standalone.<wbr>dll.  Drop this into<br>
>your<br>
>lwsws plugin directory.<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
Sent from my Android device with K-9 Mail. Please excuse my brevity.<br>
</font></span></blockquote></div><br></div>