×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

programming in C++ : problem for accessing block properties

programming in C++ : problem for accessing block properties

programming in C++ : problem for accessing block properties

(OP)
here is a small function to query the name of each block in the current drawing

void CDrvAcad::GetBlockList(CStringList *pList)
{
IAcadBlocksPtr pBlocksCollection = m_acadDoc->GetBlocks();
IAcadBlockPtr pBlock;
_variant_t index;
index.vt = VT_I4;
long count = pBlocksCollection->GetCount();
CString str;

for (int i = 0; i< count; i++)
{
index.lVal = i;
pBlock = pBlocksCollection->Item(index);
str = pBlock->GetName()
}
}

I know that the pBlock is valid, because i can access properties as blockID, blockHandle, ....
but pBlock->GetName() will stop the execution ("access violation"). Another strange thing : if i have 2 Autocad applications running at the same time, it works !

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources