2016-10-12 2 views
0

у меня есть этот код ниже:ZedGraph не располагает эдс файл после его создания

static internal bool SaveEnhMetafileToFile(Metafile mf, string fileName) 
{ 
    bool bResult = false; 
    IntPtr hEMF; 
    hEMF = mf.GetHenhmetafile(); // invalidates mf 
    if (!hEMF.Equals(new IntPtr(0))) 
    { 
     StringBuilder tempName = new StringBuilder(fileName); 
     CopyEnhMetaFile(hEMF, tempName); 
     DeleteEnhMetaFile(hEMF); 

    } 
    return bResult; 
} 

Когда CopyEnhMetaFile(hEMF, tempName); называется, картина создается, но после вызова DeleteEnhMetaFile(hEMF); функции я не могу удалить фотографию, потому что она используется моя программа (vshost.exe). Программа создана в C#

+0

Является ли это причиной: http://stackoverflow.com/questions/ 14869578/copyenhmetafile-is-not-release-the-handle-even-if-deleteenhmetafile-is-cal – PaulF

+0

Возможно, но в этой ссылке не говорится, как его удалить –

ответ

1

Как указано в ссылке, которую я разместил - вам нужно удалить ручку, созданную CopyEnhMetaFile:

static internal bool SaveEnhMetafileToFile(Metafile mf, string fileName) 
{ 
    bool bResult = false; 
    IntPtr hEMF; 
    hEMF = mf.GetHenhmetafile(); // invalidates mf 
    if (!hEMF.Equals(new IntPtr(0))) 
    { 
    StringBuilder tempName = new StringBuilder(fileName); 
    IntPtr hCopyEMF = CopyEnhMetaFile(hEMF, tempName.ToString()); 
    DeleteEnhMetaFile(hCopyEMF); 
    DeleteEnhMetaFile(hEMF); 
    } 
return bResult; 
} 
+0

Это работает! Ответ выше! :) –

Смежные вопросы