@dale, @menno,
With your help I was finally able to create a C++ DLL in VS 2019 that works with my Python script running in Rhino 7. Following your written directions from 3 locations about (1) tools, (2) first plug-in creation and (3) special modifications to create a stand alone DLL vs a plugin, I ended up with the Solution Explorer window in Visual Studio 2019 showing this after I copied over my Cloud_Mesh_Functions.cpp
file from Visual Studio 2017 which worked without changes:
while the Property Manager shows;

With this update, I can now continue my work on Pointcloud analysis.
I do have a few questions about the differences from VS 2017/Rhino 6 to VS 2019/Rhino 7:
- Inside stdafx.h it says:
// This plug-in is Rhino 6 ready
#define RHINO_V6_READY
Why does this not say it is RHINO_V7_READY
?
-
The compiler now generates new, noisy warning messages (stretches over multiple lines) when compiling the xstring module:
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\xstring(2468,23): warning C4244: ‘argument’: conversion from ‘wchar_t’ to ‘const _Elem’, possible loss of data
1> with
1> [
1> _Elem=char
1> ]
This comes from the string code:
template <class _Iter>
void _Construct(_Iter _First, const _Iter _Last, input_iterator_tag) {
// initialize from [_First, _Last), input iterators
_Tidy_deallocate_guard<basic_string> _Guard{this};
for (; _First != _Last; ++_First) {
push_back(*_First);
}
_Guard._Target = nullptr;
}
Another one is:
1>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.28.29910\include\xstring(2479): message : see reference to function template instantiation ‘void std::basic_string<char,std::char_traits,std::allocator>::_Construct<wchar_t*>(_Iter,const _Iter,std::input_iterator_tag)’ being compiled
1> with
1> [
1> _Iter=wchar_t *
1> ]
from the xstring code:
template <class _Iter>
void _Construct(const _Iter _First, const _Iter _Last, forward_iterator_tag) {
// initialize from [_First, _Last), forward iterators
const size_type _Count = _Convert_size<size_type>(static_cast<size_t>(_STD distance(_First, _Last)));
reserve(_Count);
_Construct(_First, _Last, input_iterator_tag{});
}
Regards,
Terry.