MDL编程小记
1。mdlPattern_addAssociative使用CELL进行填充的时候,需要为PatternParams指定CELL的名称,PatternParams的modifier不仅要|=PATMOD_CELL,而且也要|=PATMOD_SPACE1和PATMOD_ANGLE1,否则填充不了。具体使用方法可见帮助上的例子。
2。3D环境下向2D文件写元素,要用mdlElmdscr_convertTo2D转换一下
3。创建TextNode的时候要将char*表示的文本用下面的函数处理成MSWideChar*,否则可能乱码
代码
void fooMbstowcs( MSWideChar *wcs, const char *mbs )
{
int i, j;
const int count=(int)strlen(mbs);
j = 0;
for (i=0; i<count; i++)
{
if ((unsigned)mbs[i] > 0xa0 && (unsigned)mbs[i+1] > 0xa0)
{
wcs[j++] = (mbs[i]+1) * 0x100 + mbs[i+1];
i++;
}
else
wcs[j++] = mbs[i];
}
wcs[j] = '\0';
}
{
int i, j;
const int count=(int)strlen(mbs);
j = 0;
for (i=0; i<count; i++)
{
if ((unsigned)mbs[i] > 0xa0 && (unsigned)mbs[i+1] > 0xa0)
{
wcs[j++] = (mbs[i]+1) * 0x100 + mbs[i+1];
i++;
}
else
wcs[j++] = mbs[i];
}
wcs[j] = '\0';
}
