I have an FDK client that was developed in FM 12. While I did not test it extensively in the original release of FM 2017, it seemed to work. With the patch installed, it does not initialize (the "Cannot initialize API client ..." alert appears when I launch the patched FM 2017). Other older FDK clients initialize successfully with the patch.
What has changed that would affect some clients but not others? Does this one need to be recompiled?
Lynne, this error is usually indicative of a more serious problem, not a small change to the interface. The most common reason is that the DLL file is registered in maker.ini but simply doesn't exist. I'm sure you accounted for this possibility, but I'm just mentioning it to be thorough. Other reasons include an incompatibility between libraries, or possible a DLL compiled with dependencies that are not present in the applicable FM version.
What resources do you have at your disposal? Do you have the source code?
Has the problem been fixed? Is the DLL that no longer works the one used as a custom client to allow FrameScript to be used during SGML/XML import and export? (I ask because the one that no longer works for me is an import/export client.)
Yes, as a matter of fact it does. FrameScript has 2 DLLs and the one that deals with structured import/export won't load with the latest update.
FslStruct=Standard,FrameScript Struct Import/Export,C:\Program Files (x86)\FrameScript6\FslStruct6_130.dll,structured
Russ, Yes, we have the source code. I do suspect a change in libraries or compilation options in the patch, but did not notice anything relevant in the list of resolved issues that announced the patch. The file has not moved and still works in an earlier version of FM. Again, this client worked in the initial FM 2017 release. Installing the patch did not delete the previous FM 2017 maker.ini in AppData and that file has not changed either.
Maybe it has something to do with the update of the Apache Xerces™ C++ XML Parser that was updated from 2.5/2.7 to the latest Xerces version (3.1.4)?
Thanks for the suggestion, but I don't see how. While this client is used as a custom API client in an XML application, the client cannot be initialized, so it never runs; I don't get as far as attempting to export XML using it.
Your earlier reply on this thread was correct. Sorry I didn't recognize it then.
I am having the same issue with a plugin that used to work with FrameMaker 2017 before the patch but I now get the ¨Cannot initialize¨alert.
Is anyone at Adobe looking into this? If the issue is with the Xerces change (as indicated above), what do we need to do to resolve this issue?
I also agree with the suggestion that the alert should give us more information as to what the issue might be, what to look for for troubleshooting, etc. The current "Cannot initialize" alert is too generic and does not provide any useful information.
By the way, there are a couple of problems with the alert itself. It advises that the user check for errors in maker.ini but refers to maker.ini in the main FrameMaker directory rather than the user's personal maker.ini in AppData. Also, there's a space missing after the comma between "maker.ini" and "verify".
I'll file a bug on the alert text.
From Kunal at Adobe (as posted on the frameusers list):
We have updated xerces to a later version(3.1) with updater 1. This changed DLL name from 'xerces-c_2_7.dll' to 'xerces-c_3_1.dll' which could be a reason for these failures Can you please try copying 'xerces-c_2_7.dll' from FM2015(as FM2017 Updater 1 deletes 2.7 version) to fm_home.
Please mail me at: email@example.com if you need this dll.
Thanks, Rick. This workaround makes the "Cannot initialize" alert go away.
I wonder if it is possible to use both of these DLLs side-by-side. If so, the solution would be for the FrameMaker updater to leave the earlier version instead of deleting it.
It looks like it might be possible. Looking at the FMHOME folder, I see what looks like multiple versions of other DLLs.
I noticed the same issue with one of the DLLs that comes with FrameScript. It showed up after I installed the latest FrameMaker 2017 update.
I have come across this with our plugins where I had inadvertently put a debug DLL on a system that did not have either of Visual Studio or the FDK installed, or with an incorrect version of a c# managed DLL, used by a plugin.
It would be useful if the actual problem causing the initialization to fail was reported.
Have you looked at the event log? As an example I see some crashes being reported there with the DLL that had the exception listed.
Due to Xerces version number update some plugins that were using Xerces may not work.
We suspect these errors are coming because of this change.
Plugins should update to accommodate with new version of xerces, as a workaround please try with placing attached dll to fm_home.