// Loaded as a resource example
private void Form1_Load(object sender, System.EventArgs e)
{
this.imageList1.Images.Add(new
Icon(Assembly.GetExecutingAssembly().GetManifestResourceStream(
".filename.ico")));
this.toolBar1.Buttons[0].ImageIndex = 0;
}
'VB
Imports System.Drawing
Imports System.IO
Imports System.Reflection
' Loaded as content example
Private Sub Form1_Load1(ByVal sender As Object, ByVal e As System.EventArgs)
Me.imageList1.Images.Add(New Icon(File.Open("fullFileName.ico", _
FileMode.Open)))
Me.toolBar1.Buttons(0).ImageIndex = 0
End Sub 'Form1_Load1
' Loaded as a resource example
Private Sub Form1_Load2(ByVal sender As Object, ByVal e As System.EventArgs)
Me.imageList1.Images.Add(New _
Icon([Assembly].GetExecutingAssembly().GetManifestResourceStream( _
".filename.ico")))
Me.toolBar1.Buttons(0).ImageIndex = 0
End Sub 'Form1_Load2
6. 与本地代码(Native Code)互用
6.1. 如何调用本地代码写的DLL中的函数?
本地DLL代码可以通过系统的Invoke (P/Invoke)方法调用。这些文章提供了如何实现调用和更多的调用技巧:
学习如何使用.net精简框架的Platform Invoke (P/Invoke)细节:
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfintrointerp.asp
深入探索.net精简框架下的互用性。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfadvinterop.asp
学习如何通过P/Invoke建立智能设备上的非托管代码。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/unmanagedfuncs.asp
如何在.net精简框架上汇集托管和非托管代码的数据。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfmarshallingtypes.asp
学习使用工具dumpbin.exe在微软.net精简框架的应用中申明P/Invokes。
http://msdn.microsoft.com/library/en-us/dnnetcomp/html/netcfdumpbinpinvoke.asp
6.2. 如何使用dumpbin.exe帮助描述 P/Invokes?
见本问答的 "6.1. 如何调用本地写的DLL中的函数? " 章节。
6.3. 如何为微软.net精简框架写非托管代码?
见本问答的 "6.1. 如何调用本地写的DLL中的函数? " 章节。
6.4. 如何调用 P/Invoke GetTickCount?
不需要使用P/Invoke调用GetTickCount功能,因为Environment.TickCount就提供了这个功能。
见本问答的 " 7.2. 如何计算精确的时间间隔?" 章节。
6.5. 如何获得系统还有多少可用内存?
您可以调用GetSystemMemoryDivision和GlobalMemorySystem函,数获得程序和存储器间有多少内存是隔离的和已经分配的。
参数的说明可以在API参考文档中找到。
//C#
using System.Runtime.InteropServices;
public class MEMORYSTATUS
{
public uint dwLength;
public uint dwMemoryLoad;
public uint dwTotalPhys;
public uint dwAvailPhys;
public uint dwTotalPageFile;
public uint dwAvailPageFile;
public uint dwTotalVirtual;
public uint dwAvailVirtual;
}