以下这段代码应该如何部署,哪些是部署在类或者模块里的,哪些是部署在窗体里的,具体应该部署在什么位置?如何部署才能使代码生效,由于我对.net不熟悉,不知道代码应该放在什么位置上,请指教!非常感谢![StructLayout(LayoutKind.Sequential)]
        public struct CALLLOGENTRY
        {            public UInt32 cbSize;
            public UInt64 ftStartTime;
            public UInt64 ftEndTime;
            public short iom;            public bool fOutgoing;
            public bool fConnected;
            public bool fEnded;            public bool fRoam;
            public short cidt;
            public IntPtr pszNumber;
            public IntPtr pszName;
            public IntPtr pszNameType;
            public IntPtr pszNote;
        };
        [DllImport("phone.dll", EntryPoint = "PhoneOpenCallLog", SetLastError = true)]
        private static extern int PhoneOpenCallLog(ref IntPtr pHandle);        [DllImport("phone.dll", EntryPoint = "PhoneCloseCallLog", SetLastError = true)]
        private static extern int PhoneCloseCallLog(IntPtr pHandle);        [DllImport("phone.dll", EntryPoint = "PhoneGetCallLogEntry", SetLastError = true)]
        private static extern int PhoneGetCallLogEntry(IntPtr pHandke, ref CALLLOGENTRY pEntry);
//下面是测试代码
         /// <summary>
        /// 获取通话记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                IntPtr handle = IntPtr.Zero;                CALLLOGENTRY entry = new CALLLOGENTRY();
                PhoneOpenCallLog(ref handle);
                entry.cbSize = (uint)Marshal.SizeOf(entry);                if (handle != IntPtr.Zero)
                {                    listView.Items.Clear();
                    listView.Columns[0].Width = this.Width;
                    while (PhoneGetCallLogEntry(handle, ref entry) == 0)
                    {                        string phoneNumber = Marshal.PtrToStringUni(entry.pszNumber);
                        string name = Marshal.PtrToStringUni(entry.pszName);
                        if (name == null)
                        {
                            name = string.Empty;
                        }                        ListViewItem item = new ListViewItem(phoneNumber.Trim());
                        item.SubItems.Add(name.Trim());                        listView.Items.Add(item);
                    }
                    PhoneCloseCallLog(handle);                }
                else
                {                    int error = Marshal.GetLastWin32Error();
                }
            }
            catch (Exception ep)
            {
                MessageBox.Show(ep.Message);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }

解决方案 »

  1.   

    分成两部分.用面向对象的思想,把上面phone....(应用是通话记录之后的),放到一个类中.测试的代码是表现层(UI)作为一层.这样,上面那个类文件可以用在别的地方,当然你也可以直接把它作为类库,生成DLL文件给别人使用.
      

  2.   

    我是刚开始学习.net能不能说明的再详细些,如何创建类,如何放置上面的代码?能不能请你做一个演示程序,将上面的代码方式在一个新工程中,打包发给我,[email protected]我按照您提供的包,直接在2005下打开,就明白了。非常感谢!