Darin이 게시 한 링크 (결과적으로 대답으로 표시됨)에는 기능 코드가 포함되어 있지 않습니다. 나는 거기에 게시 된 코드 (http://khason.net/blog/how-to-load-unmanaged-native-resources-from-managed-c-code/)를 평가했으며 어떤 코드에서도 제대로 작동하지 않는다는 것을 발견했다. 비트 맵 이미지로 모든 win32 dll에 포함 된 비트 맵 이미지.
또한 Hans Passant는 무수한 단계를 남겨두고 효과적으로 쓸모없는 게시물을 렌더링합니다.
내가 찾을 수 있었던 유일한 가까운 솔루션은 XP 테마 dll 쓰레기 2004 년에 작성된 기사에서 비롯됩니다. 당신은, 내가 bitmap.RotateFlip 호출,이 방법으로 많은 어려움을 꾸게 주목해야한다 여기 ThemeManager.cs 그러나 http://www.codeproject.com/KB/miscctrl/XPTaskBar.aspx
의 'GetResourcePNG'방법을 찾을 수 있습니다 (RotateFlipType.Rotate180FlipX) ; 내가 여기에 나열된 코드를 (발견했습니다
http://www.vbaccelerator.com/home/NET/ : 내 시스템
업데이트에 authui.dll 내에서 액세스 PNG 파일로하려고 할 때 메모리 문제가 발생 코드/컨트롤/Explorer_Bar/ExplorerBar_Control_Source_Code.asp)가 가장 기능적으로 가장 적은 오류를 생성하고 가장 빠른 결과를 생성합니다. 코드는 도메인 이름이 다름을 나타내지 만 C#으로 작성됩니다.두 클래스 사용하기. ImageUtility 및 ResourceLibrary, 당신은 쉽게 표준 밖으로 PNG를 뽑을 수, non-.net 리소스 라이브러리/DLL :
public static Bitmap GetStandardResourceBitmap(String dllName, String resourceId) {
Bitmap result = null;
using (ResourceLibrary library = new ResourceLibrary() { Filename = dllName }) {
IntPtr hDib = library.GetResource(resourceId, ResourceLibrary.ImageType.IMAGE_BITMAP, ResourceLibrary.ImageLoadOptions.LR_CREATEDIBSECTION);
if (!hDib.Equals(IntPtr.Zero)) {
result = ImageUtility.DibToBitmap(hDib);
ImageUtility.DeleteObject(hDib);
}
}
return result;
}
나는 그것이 필요하지 않는 경우에만 있기 때문에, 내 방법에 문자열을 RESOURCEID을하기로 결정했습니다 과부하 및 번호가 매겨진 자원 ID 사용은 '#'을 선행하는 것처럼 간단합니다.
GetStandardResourceBitmap("shell32.dll", "#632");
건배
가 포함 된 리소스가 아니면 리소스 파일입니까? – casperOne