我正在使用log4net,我将日志文件保存在AppData文件中,用于win XP/Vista等.
这是我的app.config文件到目前为止,我已经指定了名称softphone.log.Hoewver,我不知道如何指定文件的完整路径,因为每个用户将根据其用户名使用不同的路径.
<log4net>
<logger name="default">
<level value="DEBUG"/>
</logger>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="softphone.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackup value="10"/>
<maximumFileSize value="1MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)
在我的源代码中,我可以通过执行以下操作获取路径:
System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Run Code Online (Sandbox Code Playgroud)
但是,我不能在我的app.config中使用上面的内容,如果我在我的系统上硬编码路径,那么路径将是:
C:\Documents and Settings\John\Application Data
Run Code Online (Sandbox Code Playgroud)
但是,这对每个客户来说都是不同的.那么有没有办法为app.config文件执行此操作?
非常感谢任何建议,
我有以下将打开文件进行阅读.但是,我想检查以确保文件已成功打开,因此我使用失败来查看是否已设置标志.但是,我不断收到以下错误:
我是C++的新手,因为我来自C.所以我不确定我是否理解这个错误:
不能调用成员函数'bool std :: basic_ios <_CharT,_Traits> :: fail()const [with _CharT = char,_Traits = std :: char_traits]'没有对象
码:
int devices::open_file(std::string _file_name)
{
ifstream input_stream;
input_stream.open(_file_name.c_str(), ios::in);
if(ios::fail() == true) {
return -1;
}
file_name = _file_name;
return 0;
}
Run Code Online (Sandbox Code Playgroud) Android Studio 2.0预览版
你好,
我有这个选择器连接到imageview.我想要imageview打开和关闭.因此off将显示绿色,并且将显示红色.
但是,当我点击时imageview没有任何反应.我尝试过state_pressed和state_checked的不同组合.而现在它变得太混乱了.我在这里想念的是什么
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false"
android:drawable="@drawable/bottom_left_border"/>
<item android:state_checked="true"
android:drawable="@drawable/bottom_left_border_pressed">
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议,
C#2008 SP1
我正在使用后台工作者
如果其中一个条件失败,我将e.cancel设置为true,并将字符串分配给e.result.一切都在那里工作.
但是,当workCompleted触发时,我测试了e.Result并且我得到一个异常"e.result抛出systeminvalidoperation类型的异常".
我想我可以使用全局变量在DoWork中设置并在完成的工作中进行比较.但这可能不是线程安全的.
任何人都可以告诉我为什么我用e.Result得到这个,我该如何解决这个问题?
非常感谢,
private void bgwPrepareCall_DoWork(object sender, DoWorkEventArgs e)
{
// Check to see if the called number is blocked.
// If the nubmer is blocked display error message.
if (this.IsNoGateway(sipUsername, statusDisplay1.PhoneNumber))
{
// this.SetIdleState(DialerErrorMessage.GetErrorDescription(12));
e.Cancel = true;
e.Result = "NoGateway";
return;
}
if (!this.IsInvalidTelephoneNumber(sipUsername, statusDisplay1.PhoneNumber))
{
// this.SetIdleState(DialerErrorMessage.GetErrorDescription(13));
e.Cancel = true;
e.Result = "InvalidNumber";
return;
}
}
private void bgwPrepareCall_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error == null)
{
if (e.Cancelled)
{
// Failed …Run Code Online (Sandbox Code Playgroud) 我这样使用snprintf以避免缓冲区溢出:
char err_msg[32] = {0};
snprintf(err_msg, sizeof(err_msg) - 1, "[ ST_ENGINE_FAILED ]");
Run Code Online (Sandbox Code Playgroud)
-1如果字符串长度超过32个字节,我为null终止符添加了保留空间.
我的想法是否正确?
平台:
(gcc 4.4.4 c89)
我一直习惯于strncpy复制字符串.我从来没有真正使用memmove或memcpy非常.然而,当你决定是否要使用我只是想知道strncpy,memmove或memcpy?
我写的代码是针对客户端/服务器应用程序的.在他们使用的文档中bcopy.但是,我可以和其他人一样吗?
bcopy((char*)server->h_addr,
(char*)&serv_addr.sin_addr.s_addr,
server->h_length);
Run Code Online (Sandbox Code Playgroud)
非常感谢,
gcc 4.4.4 c89
我有以下结构.
struct device_sys
{
char device[STRING_SIZE];
int id;
char category;
};
int main(void)
{
struct device_sys dev_sys[NUM_DEVICES];
memset(dev_sys, 0, (size_t)NUM_DEVICES * sizeof(dev_sys));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我调用memset时,我得到一个堆栈转储.这不是初始化结构数组的正确方法吗?
gcc 4.4.4 c89
我只是想知道在创建类型时是否应该遵循任何标准.
例如:
typedef struct date
{
} date_t;
Run Code Online (Sandbox Code Playgroud)
我也看到人们把这样的资本投入:
typedef struct date
{
} Date;
Run Code Online (Sandbox Code Playgroud)
或者变量
typedef unsigned int Age;
Run Code Online (Sandbox Code Playgroud)
或这个
typedef unsigned int age_t;
Run Code Online (Sandbox Code Playgroud)
是否有任何应遵循的标准.我个人更喜欢用_t进行后固定.
非常感谢任何建议,
使用旺盛的ctags 5.8 for gcc 4.4.3 c89
我刚刚开始使用exuberant-ctags,我只是想知道你添加了什么选项.
这是一个列表,我只是想知道添加太多可能是超过杀死.
$ ctags --list-kinds=c
c classes
d macro definitions
e enumerators (values inside an enumeration)
f function definitions
g enumeration names
l local variables [off]
m class, struct, and union members
n namespaces
p function prototypes [off]
s structure names
t typedefs
u union names
v variable definitions
x external and forward variable declarations [off]
Run Code Online (Sandbox Code Playgroud)
我打算使用以下内容:
ctags -e --c-kinds=+defgpstux -R
Run Code Online (Sandbox Code Playgroud)
我只是想知道:这有点矫枉过正吗?
c classes No -- I don't have any classes as this is …Run Code Online (Sandbox Code Playgroud) gcc (GCC) 4.8.1
android-ndk-r9
Run Code Online (Sandbox Code Playgroud)
你好,
我的主机是Fedora 19,我想创建一个工具链,用于编译在android上运行的程序,稍后我想为iOS扩展它.
我收到以下错误:
Check for working C compiler: /opt/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -- broken
Run Code Online (Sandbox Code Playgroud)
我不知道为什么我会收到此错误,因为已经安装了所有内容.我也安装了binutils-arm-linux-gnu.然而,这是我第一次做这类事情,所以我有很多东西混淆了.
我正在尝试使用cmake创建一个工具链文件到croos-compile以在Android设备上运行库.
我已经在以下位置安装了android-ndk-r9和编译器的路径:
/opt/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin
arm-linux-androideabi-addr2line
arm-linux-androideabi-ar
arm-linux-androideabi-as
arm-linux-androideabi-c++
arm-linux-androideabi-c++filt
arm-linux-androideabi-cpp
arm-linux-androideabi-elfedit
arm-linux-androideabi-g++
arm-linux-androideabi-gcc
arm-linux-androideabi-gcc-4.8
arm-linux-androideabi-gcc-ar
arm-linux-androideabi-gcc-nm
arm-linux-androideabi-gcc-ranlib
arm-linux-androideabi-gcov
arm-linux-androideabi-gdb
arm-linux-androideabi-gprof
arm-linux-androideabi-ld
arm-linux-androideabi-ld.bfd
arm-linux-androideabi-ld.gold
arm-linux-androideabi-ld.mcld
arm-linux-androideabi-nm
arm-linux-androideabi-objcopy
arm-linux-androideabi-objdump
arm-linux-androideabi-ranlib
arm-linux-androideabi-readelf
arm-linux-androideabi-run
arm-linux-androideabi-size
arm-linux-androideabi-strings
arm-linux-androideabi-strip
Run Code Online (Sandbox Code Playgroud)
我的交叉编译文件是:
include(CMakeForceCompiler)
set(toolchain_path /opt/ndk/toolchains)
# Target system
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSTEM_VERSION 1)
# Compiler to build for the target
set(CMAKE_C_COMPILER /opt/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc)
set(CMAKE_FIND_ROOT_PATH /opt/ndk/toolchains)
Run Code Online (Sandbox Code Playgroud)
我从我的build/debug目录运行它,我的工具链在根目录中.
[ant@localhost debug]$ …Run Code Online (Sandbox Code Playgroud)