So far I have been using ExtendScript but it is time to also get some work done with the FDK. I have installed Visual Studio Community 2019 and tried to build one of the FDK2019 samples, but I am getting a bunch of warnings and errors about incorrect target platform and missing libraries. Is it possible to build code for FM2019 using my version of Visual Studio or do I need an older version? Is there a switch I can use to change the target platform?
The FDK Reference unfortunately does not state anything about a development environment. At least some of you have done work in this area. I am not going to do a lot of work on this so I am trying to avoid having to get a costly Developer License with Microsoft.
Thanks in advance for pointers to get me started.
I have watched this message since you posted it, hoping that you would get an answer. I'm disappointed that you didn't, because I would like to know the answer myself.
One of FrameMaker's greatest strengths is its ability to be customized. And, I believe that the most important developers are amateurs like ourselves... that is, people who know FM well and know what it can do, but are not hardcore, professional developers that know the intimacies of IDEs, etc. So, if you did get an answer, please post it. At the very least, I do think Adobe could help us here, as much as we have done to add value to the product.
Best wishes from the quaranteed US,
I was able to build FDK plugins with VS Community 2019 after trying several things and tweaking the project files. I agree with you that there should be a well-dcoumented process on how to set up and build FDK plugins which includes all relevant switches.
I don't know how I can help you because I don't know what your project settings are and I can't post my project files here.
Here are a couple of things to try related to the messages you are getting:
1) Regarding platform messages: In the Configuration Properties > General settings, I have the Toolset version set to v142 (for VS2019) and the SDK version set to 10.0.18362.0.
2) regarding missing libraries: In Configuration Properties > VC++ Directories, add the FDK include and lib folders in the Include Directories and Library Directories respectively.
Also, in Linker > Input > Additional Dependencies, I have this:
Hopefully, this will get you closer to buiding your plugins. Let me know if you get any other errors and I will try to help.
I have turned to scripting for another project but I will revisit the FDK project after that and let you know if your pointers solved my initial problems.
Kind regards from Amsterdam
AFAIK you have to use VS2013 runtime libraries. So the Toolset should be set to v120, which also means you have to install VS 2013, which is a bit of a pain. The 2019 FDK PROGRAMMER’S GUIDE
Adobe FrameMaker (2019 release) at http://help.adobe.com/en_US/framemaker/pdfs/fdkprogrammerguide.pdf, on page 18 states this as well.
I have just converted some plugins to VS2019 for FM2019 x64 using the 2019 FDK. I have no linker errors or warnings with this setup. I have previously, for another customer, converted to VS2017 for FM2019 x64 using the 2019 FDK using v120. These plugins are now in production, with no problems that I am aware of.
As to why this particular toolset version is required is, as I understand it, what the FDK libraries were built with. I would be loath to try a later version as then, with any indeterminate problems, the toolset version becomes suspect.
I would rather just deal with indeterminate bugs in code! 😉
Thanks for the info on the libraries to use. The hassle with having to use old libraries is that you have to install them and I found that you need a (paid) subscription to the Microsoft developer tools to find them. Which is simply beyond what I am willing to get into. I don't see why the whole world can create software that remains backward compatible but MS does not bother and changes all kinds of routines with every version of their so-called intelligent platform.
I am not sure if I am going to get into FDK development after all. Maybe I should stick with scripting - where the only thing I have to check is whether a new property or method is available for the current FM version. No linking, no libraries (except my own), no hassle, but - unfortunately - less access to everything FrameMaker does.
It seems I am getting stuck between a rock and a hard place with this. I will post unpdates as soon as I have had the necessity to solve this stupid issue.
Sorry to hear that. IMHO if you have a licence for Visual Studio 2019, that should give you access to older versions. Have you tried installing it? There is a download available here https://visualstudio.microsoft.com/vs/older-downloads/ which requires a free VS Online account. I only install the c++ stuff and remove all other options. Once installed you should not ever have to run it; I never have.
Again IMHO the problem is really with Adobe not updating to use a later tool set. We are long past the release of VS 2013. AFAIK MS would not have deliberately broken any library calls. There would have been depracation of some, and of course alternative calls to add bounds checking. I never bother with these as the plugins would never be a vector for external parties to exploit.
I was wondering whether there's a way to use FDK along with VS Express 2013 (which is free) and if so, which settings should be chosen to set up/register and compile a new project?
I am not that familiar with VSE 2013, but a quick search shows it will compile c++ win32 and supports 64-bit and presumably Windows DLL projects.
The other question is which version of the FDK and FrameMaker?
In the future you may want to create a new topic so it is more visible to the community.