I am not sure how to fix this error. Any help will be appreciated.
Thanks
PS. The message sent early. Sorry about that
On Mon, Jul 18, 2011 at 4:08 PM, Jimmy G Lafontaine Rivera <laf...@gmail.com
> wrote:
> Hi, I have been unable to run a program correctly. I need the program to
> take a molecule from a SMILES string a perform a substructure search on it.
> I get the following error: "Access violation reading location 0x0081ffff". I
> am not sure if the problem was on the installation of the libraries or it's
> on the code. The program compiles properly, this is the code (it is taken
> from the examples):
>
>
> #include "stdafx.h"
> #include <stdio.h>
> #include <openbabel/parsmart.h>
> #include <openbabel/mol.h>
> #include <openbabel/atom.h>
> #include <openbabel/obconversion.h>
>
> using namespace OpenBabel;
>
> int main()
> {
>
> // Create an OBConversion object.
> OBConversion conv;
> // Set the input format.
> if (!conv.SetInFormat("inchi")) {
> // Handle error.
> return 1;
> }
>
> // Create the OBMol object.
> OBMol mol;
>
> // Read the smiles string.
> if (conv.ReadString(&mol, "1S/C2H2O3/c3-1-2(4)5/h1H,(H,4,5)")) {
> //Always got error on this //line, but when I switched the input format to
> inchi the error moved to the line with sp.Init("CC");
> // Handle error.
> return 1;
> }
> std::cerr << mol.NumAtoms();
>
> OBAtom* atom;
> // Create a SMARTS pattern of a phenyl ring
> OBSmartsPattern sp;
> sp.Init("CC"); // Error is now obtained after the execution of this
> line
> // Properties of the substructure
> if (sp.IsValid())
> {
> std::cout << sp.NumAtoms();
> std::cout << sp.NumBonds();
> //std::cout << sp.GetSmarts();
> }
> // Matching
> (bool) sp.Match(mol, true); // Single matching
> (bool) sp.Match(mol, false); // Complete matching
> // Substructure mapping
> std::vector<std::vector<int> > mapListA;
> mapListA = sp.GetMapList(); // Non-unique matches
> std::vector<std::vector<int> > mapListU;
> mapListU = sp.GetUMapList(); // Unique matches
> for (int m(0); m < mapListU.size(); ++m)
> {
> std::cout << "Unique match " << m << std::endl;
> for (int a(0); a < mapListU[m].size(); ++a)
> {
> atom = mol.GetAtom(mapListU[m][a]);
> std::cout << atom->GetAtomicNum() << std::endl;
> }
> }
> return 0;
> }
>
>
>
>
------------------------------------------------------------------------------
Storage Efficiency Calculator
This modeling tool is based on patent-pending intellectual property that
has been used successfully in hundreds of IBM storage optimization engage-
ments, worldwide. Store less, Store more with what you own, Move data to
the right place. Try It Now! http://www.accelacomm.com/jaw/sfnl/114/51427378/
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss