Jiangsheng的CSDN Digest (Jan 7 2006)[2]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

我以前的师兄是这样使用的:
void far dacs(int ch,int Data);
int far adcs(int Data,int ch);
也就是ad/da卡。
然后再直接调用dacs(int ch,int data)和adcs(int data,int ch)函数就可以了,但是怎么将*.obj或者*.exe文件包括进去呢?


 newstm error LNK2019: unresolved external symbol _adcs referenced in function "public: int __thiscall motorDialog::gostep(void)" (?gostep@motorDialog@@QAEHXZ)
newstm fatal error LNK1120: 1 unresolved externals


How to use the Development Studio or Visual Workbench with MASM
http://support.microsoft.com/kb/q106399/

估计你这两个.asm还是16-bit的代码,
首先需要改成32-bit兼容的。
然后用masm或者tasm汇编成objs,加入到工程中,
然后在程序中加入外部引用(在.cpp或者.h中都可以):
extern "c" void far dacs(int ch,int Data);
extern "c" int far adcs(int Data,int ch);
另外可能调用约定也要改成.model flat,之后所有访问内存的代码都要改用flat模式,因为16-bit Windows的默认调用约定是Pascal。
你先看看.asm中的实现是按什么顺序处理参数、是否自己清除栈框架。你要把函数声明为公用的。一些汇编器默认将所有函数编译成私有的。把生成的obj文件加入到工程(从文件夹拖到file view)。


ATL的线程函数中 FIRE EVENT出错,其它类中FIRE EVENT 就OK ?(VC/MFC 进程/线程/DLL )


ATL和MFC都不是线程安全的
参考http://www.mvps.org/vcfaq/com/11.htm


以不同身份登陆域以获取不同的服务权限 (C++ Builder 基础类)


如何可以做到不转换Windows用户的情况下,以另一个用户的身份访问域服务器,并且结束时可以注销该用户身份。
参看了一些资料,可能要用到LogonUser,DuplicateTokenEx,CreateProcessAsUser这些函数


你可以用CreateProcessAsUser函数另外启动一个进程,之后使用进程间通讯(http://msdn.microsoft.com/library/en-us/ipc/base/interprocess_communications.asp )的方法来控制启动的程序。

参见http://www.xfocus.net/articles/200504/795.html

用LogonUser、CreateProcessAsUser,要SE_TCB_NAME权限,且即使你是administrator,也很难在程序中得到要SE_TCB_NAME权限。你可以在控制面板->管理工具->本地安全设置->用户权利指派中将"以操作系统方式运行"赋给你要设SE_TCB_NAME权限的用户,这样你上面的程序应该可以运行,但有安全隐患,因为SE_TCB_NAME是系统的最高权限。

建议用CreateProcessWithLogon。这需要本地登陆权限

void __fastcall TForm1::Button1Click(TObject *Sender)
{
STARTUPINFOW si;
PROCESS_INFORMATION pi;
memset(&si,0,sizeof(si));
si.cb=sizeof(si);

CreateProcessWithLogonW(L"yourusername",L"yourdomain",L"yourpassword",LOGON_WITH_PROFILE,L"cmd.exe",NULL,CREATE_DEFAULT_ERROR_MODE,
NULL,NULL,&si,&pi);
}
 

或用命令行的runas,
如:
runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""


分发软件时,需要将msvcr71.dll复制到system32目录下(Delphi 非技术区)


可是这个文件有可能已存在,也有可能该文件存在别的目录下正在被使用


http://support.microsoft.com/default.aspx?scid=kb;en-us;326922


inet控件下载ftp文件后,下载的文件被存放在IE缓存文件夹中,如何自动清除(VB 基础类 )


找到缓存文件夹,清空里面的文件即可

Private Sub Command2_Click()
'需要引用Microsoft Shell Controls And Automation
Dim mShell As New Shell32.Shell
Dim Temporary_Internet_Files As Shell32.Folder
Set Temporary_Internet_Files = mShell.NameSpace(32)
MsgBox Temporary_Internet_Files.Self.Path '这个就是路径
Set Temporary_Internet_Files = Nothing
Set mShell = Nothing
End Sub
 

http://vbnet.mvps.org/index.html?code/internet/deleteurlcache.htm

通过API访问IE Cache :

http://blog.csdn.net/technofantasy/archive/2002/03/29/2962.aspx

本文关键:Jiangsheng的CSDN Digest (Jan 7 2006)
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top